Import Debian changes 20180207-1
[hcoop/debian/mlton.git] / mlton / ssa / flat-lattice.sig
1 (* Copyright (C) 1999-2007 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
9 signature FLAT_LATTICE_STRUCTS =
10 sig
11 structure Point:
12 sig
13 type t
14
15 val equals: t * t -> bool
16 val layout: t -> Layout.t
17 end
18 end
19
20 signature FLAT_LATTICE =
21 sig
22 include FLAT_LATTICE_STRUCTS
23
24 type t
25
26 val <= : t * t -> bool
27 val forcePoint: t * Point.t -> bool
28 val forceTop: t -> bool
29 val getPoint: t -> Point.t option
30 val isBottom: t -> bool
31 val isPoint: t -> bool
32 val isPointEq: t * Point.t -> bool
33 val isTop: t -> bool
34 val layout: t -> Layout.t
35 val lowerBound: t * Point.t -> bool
36 val new: unit -> t
37 val point: Point.t -> t
38 val upperBound: t * Point.t -> bool
39 end