|
|
1.1 root 1: (* Copyright 1989 by AT&T Bell Laboratories *)
2: (* basicsprime.sig *)
3: signature BASICS' = sig (* derived from TRANSPARENT_BASICS *)
4:
5: (* externals *)
6: type access (* from Access.access *)
7: type 'a arraykey
8: type 'a arrayconts
9: type bool
10: type fixity
11: type int
12: type label
13: type 'a list
14: type lvar
15: type 'a option
16: type polysign
17: type 'a ref
18: type sharespec
19: type spath
20: type stamp
21: type string
22: type symbol (* from Symbol.symbol *)
23: type 'a intmap (* from Intmap.intmap *)
24:
25: (* internal types *)
26: type binding
27: type bool3
28: type conrep
29: type datacon
30: type fixityVar
31: type Functor
32: type functorVar
33: type ind_var
34: type rowty
35: type signatureVar
36: type stampInfo
37: type strkind
38: type Structure
39: type structureVar
40: type thinning
41: type trans
42: type tvkind
43: type ty
44: type tyckind
45: type tycon
46: type tyfun
47: type tyvar
48: type var
49: (* `CONSTRUCTORS' *)
50:
51: (* type bool3 *)
52:
53: val yes: bool3
54: and no: bool3
55: and maybe: bool3
56:
57:
58: (* type fixity *)
59:
60: val Nonfix: fixity
61: and Infix: int * int -> fixity
62:
63:
64: (* type conrep *)
65:
66: val undecided: conrep
67: and tagged: int -> conrep
68: and constant: int -> conrep
69: and transparent: conrep
70: and transu: conrep
71: and transb: conrep
72: and REF: conrep
73: and variable: access -> conrep
74:
75:
76: (* type tvkind *)
77:
78: val ibound: int -> tvkind
79: and meta: int * int * bool -> tvkind
80: and instantiated: ty -> tvkind
81: and ubound: symbol * int * bool -> tvkind
82:
83: (* type datacon *)
84:
85: val datacon: symbol * bool * ty * conrep * conrep list -> datacon
86:
87: (* type tyckind *)
88:
89: val abstyc: tyckind
90: and deftyc: tyfun -> tyckind
91: and datatyc: datacon list -> tyckind
92: and recordtyc: symbol list -> tyckind
93: and undeftyc: symbol list option -> tyckind
94:
95: (* type tycon *)
96:
97: val tycon: int * int * bool3 ref * symbol list * tyckind -> tycon
98: and indtyc: int list -> tycon
99:
100: (* type ty *)
101:
102: val varty: tvkind ref -> ty
103: and conty: tycon ref * ty list -> ty
104: and flexrecordty: rowty ref -> ty
105: and polyty: (int * bool) list * tyfun -> ty
106: and undefty: ty
107: and errorty: ty
108:
109: (* type rowty *)
110:
111: val Open: (symbol * ty) list -> rowty
112: and closed: ty -> rowty
113:
114: (* type tyfun *)
115: val tyfun: int * ty -> tyfun
116:
117: (* type var *)
118:
119: val valvar: access * symbol * ty ref -> var
120: and ovldvar: symbol * ind_var list ref * tyfun-> var
121: and unknownvar: symbol -> var
122:
123: (* type strkind *)
124: val strkind: symbol list -> strkind
125: and sigkind: ((symbol list * symbol list)list *
126: (symbol list * symbol list)list) *
127: binding list * int * int -> strkind
128:
129: (* type Structure *)
130: val strstr: int * int * (string * binding) intmap *
131: tycon arraykey * Structure arraykey * strkind -> Structure
132: and indstr: int -> Structure
133:
134: (* type Functor *)
135: val Functor: symbol * Structure * Structure * int -> Functor
136:
137: (* type signatureVar *)
138: val sigvar: symbol * Structure -> signatureVar
139:
140: (* type structureVar *)
141: val strvar: symbol * access * Structure -> structureVar
142:
143: (* type functorVar *)
144: val fctvar: symbol * access * Functor -> functorVar
145:
146: (* type fixityVar *)
147: val fixvar: symbol * fixity -> fixityVar
148:
149: (* type binding *)
150: val varbind: var -> binding
151: and conbind: datacon -> binding
152: and tycbind: tycon ref -> binding
153: and tyvbind: tvkind ref -> binding
154: and sigbind: signatureVar -> binding
155: and strbind: structureVar -> binding
156: and fctbind: functorVar -> binding
157: and fixbind: fixityVar -> binding
158:
159: (* type trans *)
160: val valtrans: access -> trans
161: and thintrans: access * lvar * trans list -> trans
162: and contrans: datacon -> trans
163:
164:
165: end (* signature TRANSPARENT_BASICS *)
166:
167:
168:
169:
170:
171:
172:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.