1 (* Copyright (C) 1999-2007 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 HASH_TYPE_STRUCTS =
16 include HASH_TYPE_STRUCTS
18 sharing type realSize = RealSize.t
19 sharing type tycon = Tycon.t
20 sharing type wordSize = WordSize.t
25 Con of Tycon.t * t vector
30 val checkPrimApp: {args: t vector,
33 targs: t vector} -> bool
34 val containsTycon: t * Tycon.t -> bool
36 val equals: t * t -> bool
37 (* for reporting type errors *)
38 val error: string * Layout.t -> 'a
42 con: Tycon.t * 'a vector -> 'a} -> 'a
44 val layout: t -> Layout.t
45 val layoutPretty: t -> Layout.t
47 {var: t * Tyvar.t -> 'a,
48 con: t * Tycon.t * 'a vector -> 'a}
50 destroy: unit -> unit}
52 {con: t * Tycon.t * 'a vector -> 'a}
54 destroy: unit -> unit}
55 val ofConst: Const.t -> t
56 val plist: t -> PropertyList.t
57 val stats: unit -> Layout.t
58 val string: t (* synonym for word8Vector *)
59 (* substitute (t, [(a1, t1), ..., (an, tn)]) performs simultaneous
60 * substitution of the ti for ai in t.
61 * The ai's are not required to contain every free variable in t
63 val substitute: t * (Tyvar.t * t) vector -> t
64 val tycon: t -> Tycon.t