1 (* Copyright (C) 1999-2006 Henry Cejtin, Matthew Fluet, Suresh
2 * Jagannathan, and Stephen Weeks.
4 * MLton is released under a BSD-style license.
5 * See the file MLton-LICENSE for details.
10 structure Plist: PROPERTY_LIST
12 type ('sym, 'val) init
14 val initConst: 'val -> ('sym, 'val) init
15 val initFun: ('sym -> 'val) -> ('sym, 'val) init
16 val initRaise: string * ('sym -> Layout.t) -> ('sym, 'val) init
17 val initRec: ('sym * ('sym -> 'val) -> 'val) -> ('sym, 'val) init
20 ('sym -> Plist.t) * ('sym, 'val) init
22 destroy: unit -> unit,
27 ('sym -> Plist.t) * ('sym, 'val) init
29 destroy: unit -> unit,
31 set: 'sym * 'val -> unit
35 ('sym -> Plist.t) * ('sym, 'val) init
38 set: 'sym * 'val -> unit,
42 (* For all of the rem functions, it is OK if the property isn't there. *)
45 ('sym -> Plist.t) * ('sym, 'val) init
52 ('sym -> Plist.t) * ('sym, 'val) init
56 set: 'sym * 'val -> unit
59 (* Property can only be set or initialized once. *)
61 ('sym -> Plist.t) * ('sym, 'val) init
65 set: 'sym * 'val -> unit