Import Upstream version 20180207
[hcoop/debian/mlton.git] / mlton / ssa / two-point-lattice.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 TWO_POINT_LATTICE_STRUCTS =
10 sig
11 (* pretty print names *)
12 val bottom: string
13 val top: string
14 end
15
16signature TWO_POINT_LATTICE =
17 sig
18 include TWO_POINT_LATTICE_STRUCTS
19
20 type t
21
22 val <= : t * t -> unit (* force rhs to be top if lhs is *)
23 val == : t * t -> unit (* force lhs and rhs to be the same *)
24 (* handler will be run once iff value becomes top *)
25 val addHandler: t * (unit -> unit) -> unit
26 val isBottom: t -> bool
27 val isTop: t -> bool
28 val layout: t -> Layout.t
29 val makeTop: t -> unit
30 val new: unit -> t (* a new bottom *)
31 end