Import Debian changes 20180207-1
[hcoop/debian/mlton.git] / mlton / control / region.sig
CommitLineData
7f918cf1
CE
1(* Copyright (C) 1999-2006 Henry Cejtin, Matthew Fluet, Suresh
2 * Jagannathan, and Stephen Weeks.
3 * Copyright (C) 1997-2000 NEC Research Institute.
4 *
5 * MLton is released under a BSD-style license.
6 * See the file MLton-LICENSE for details.
7 *)
8
9signature REGION_STRUCTS =
10 sig
11 end
12
13signature REGION =
14 sig
15 include REGION_STRUCTS
16
17 type t
18
19 val <= : t * t -> bool
20 val append: t * t -> t
21 val bogus: t
22 val compare: t * t -> Relation.t
23 val equals: t * t -> bool
24 val extendRight: t * SourcePos.t -> t
25 val left: t -> SourcePos.t option
26 val layout: t -> Layout.t
27 val make: {left: SourcePos.t, right: SourcePos.t} -> t
28 val right: t -> SourcePos.t option
29 val toString: t -> string
30
31 structure Wrap:
32 sig
33 type region
34 type 'a t
35 val region: 'a t -> region
36 val node: 'a t -> 'a
37 val makeRegion: 'a * region -> 'a t
38 val makeRegion': 'a * SourcePos.t * SourcePos.t -> 'a t
39(* val make: 'a -> 'a t *)
40 val dest: 'a t -> 'a * region
41(* val left: 'a t -> int *)
42(* val right: 'a t -> int *)
43 end
44 sharing type Wrap.region = t
45 end