1 (* Copyright (C) 2017 Matthew Fluet.
2 * Copyright (C) 1999-2007 Henry Cejtin, Matthew Fluet, Suresh
3 * Jagannathan, and Stephen Weeks.
4 * Copyright (C) 1997-2000 NEC Research Institute.
6 * MLton is released under a BSD-style license.
7 * See the file MLton-LICENSE for details.
10 signature AST_MODULES_STRUCTS =
12 include AST_ATOMS_STRUCTS
15 signature AST_MODULES =
19 structure WhereEquation:
23 Type of {longtycon: Longtycon.t,
24 tyvars: Tyvar.t vector,
26 include WRAPPED sharing type node' = node
38 | Where of {equations: WhereEquation.t vector,
41 include WRAPPED sharing type node' = node
44 val wheree: t * WhereEquation.t vector -> t
47 val layout: t -> Layout.t
55 | Transparent of Sigexp.t
58 structure SharingEquation:
62 Structure of Longstrid.t list
63 | Type of Longtycon.t list
64 include WRAPPED sharing type node' = node
72 Datatype of DatatypeRhs.t
73 | Eqtype of {tycon: Tycon.t,
74 tyvars: Tyvar.t vector} vector
76 | Exception of (Con.t * Type.t option) vector
77 | IncludeSigexp of Sigexp.t
78 | IncludeSigids of Sigid.t vector
80 | Sharing of {equation: SharingEquation.t,
82 | Structure of (Strid.t * Sigexp.t) vector
83 | Type of {tycon: Tycon.t,
84 tyvars: Tyvar.t vector} vector
85 | TypeDefs of TypBind.t
86 | Val of (Var.t * Type.t) vector
88 include WRAPPED sharing type node' = node
91 val layout: t -> Layout.t
93 sharing type Spec.t = Sigexp.spec
102 | Constrained of t * SigConst.t
107 include WRAPPED sharing type node' = node
110 val constrained: t * SigConst.t -> t
111 val lett: strdec * t -> t
112 val var: Longstrid.t -> t
114 val layout: t -> Layout.t
124 | ShowBasis of File.t
125 | Structure of {constraint: SigConst.t,
127 name: Strid.t} vector
129 include WRAPPED sharing type node' = node
134 val layout: t -> Layout.t
135 val openn: Longstrid.t vector -> t
136 val structuree: {constraint: SigConst.t,
140 sharing type Strdec.t = Strexp.strdec
146 Structure of Strid.t * Sigexp.t
148 include WRAPPED sharing type node' = node
156 Functor of {arg: FctArg.t,
159 result: SigConst.t} vector
160 | Signature of (Sigid.t * Sigexp.t) vector
163 include WRAPPED sharing type node' = node
166 val checkSyntax: t -> unit
167 val fromExp: Exp.t -> t
168 val layout: t -> Layout.t