1 (* Copyright (C) 1999-2006 Henry Cejtin, Matthew Fluet, Suresh
2 * Jagannathan, and Stephen Weeks.
3 * Copyright (C) 1997-2000 NEC Research Institute.
5 * MLton is released under a BSD-style license.
6 * See the file MLton-LICENSE for details.
9 signature THREE_POINT_LATTICE_STRUCTS =
11 (* pretty print names *)
17 signature THREE_POINT_LATTICE =
19 include THREE_POINT_LATTICE_STRUCTS
23 val <= : t * t -> unit (* force rhs to be mid/top if lhs is *)
24 val == : t * t -> unit (* force lhs and rhs to be the same *)
25 val isBottom: t -> bool
28 val layout: t -> Layout.t
29 val makeTop: t -> unit
30 val makeMid: t -> unit
31 val new: unit -> t (* a new bottom *)
33 (* handler will be run once iff value gte mid *)
34 val whenMid: t * (unit -> unit) -> unit
35 (* handler will be run once iff value gte top *)
36 val whenTop: t * (unit -> unit) -> unit