1 (* Copyright (C) 2009 Matthew Fluet.
2 * Copyright (C) 1999-2006 Henry Cejtin, Matthew Fluet, Suresh
3 * Jagannathan, and Stephen Weeks.
5 * MLton is released under a BSD-style license.
6 * See the file MLton-LICENSE for details.
9 signature MONO_ENV_STRUCTS =
15 signature BASIC_MONO_ENV =
17 include MONO_ENV_STRUCTS
20 val extend: t * Domain.t * Range.t -> t
21 val fromList: (Domain.t * Range.t) list -> t
22 val peek: t * Domain.t -> Range.t option
23 val toList: t -> (Domain.t * Range.t) list
28 include BASIC_MONO_ENV
31 val domain: t -> Domain.t list
33 val equals: t * t -> bool
34 val fold: t * 'a * (Range.t * 'a -> 'a) -> 'a
35 val foldi: t * 'a * (Domain.t * Range.t * 'a -> 'a) -> 'a
36 val foreach: t * (Range.t -> unit) -> unit
37 val foreachi: t * (Domain.t * Range.t -> unit) -> unit
38 val isEmpty: t -> bool
39 val layout: t -> Layout.t
40 val lookup: t * Domain.t -> Range.t
41 val map: t * (Range.t -> Range.t) -> t
42 val mapi: t * (Domain.t * Range.t -> Range.t) -> t
43 val multiExtend: t * Domain.t list * Range.t list -> t
44 val new: Domain.t list * (Domain.t -> Range.t) -> t
46 val remove: t * Domain.t -> t
47 val restrict: t * Domain.t list -> t
48 val single: Domain.t * Range.t -> t