Import Upstream version 20180207
[hcoop/debian/mlton.git] / basis-library / libs / basis-extra / top-level / basis.sig
1 signature BASIS_EXTRA =
2 sig
3 (* Top-level types *)
4 eqtype 'a array
5 datatype bool = datatype bool
6 eqtype char
7 type exn
8 eqtype int
9 datatype 'a option = NONE | SOME of 'a
10 datatype order = LESS | EQUAL | GREATER
11 datatype list = datatype list
12 datatype ref = datatype ref
13 type real
14 eqtype string
15 type substring
16 eqtype unit
17 eqtype 'a vector
18 eqtype word
19
20 (* Top-level exceptions *)
21 exception Bind
22 exception Chr
23 exception Div
24 exception Domain
25 exception Empty
26 exception Fail of string
27 exception Match
28 exception Option
29 exception Overflow
30 exception Size
31 exception Span
32 exception Subscript
33
34 (* Top-level values *)
35 val = : ''a * ''a -> bool
36 val <> : ''a * ''a -> bool
37
38 val ! : 'a ref -> 'a
39 val := : 'a ref * 'a -> unit
40 val @ : ('a list * 'a list) -> 'a list
41 val ^ : string * string -> string
42 val app : ('a -> unit) -> 'a list -> unit
43 val before : 'a * unit -> 'a
44 val ceil : real -> int
45 val chr : int -> char
46 val concat : string list -> string
47 val exnMessage : exn -> string
48 val exnName : exn -> string
49 val explode : string -> char list
50 val floor : real -> int
51 val foldl : ('a * 'b -> 'b) -> 'b -> 'a list -> 'b
52 val foldr : ('a * 'b -> 'b) -> 'b -> 'a list -> 'b
53 val getOpt : ('a option * 'a) -> 'a
54 val hd : 'a list -> 'a
55 val ignore : 'a -> unit
56 val isSome : 'a option -> bool
57 val implode : char list -> string
58 val length : 'a list -> int
59 val map : ('a -> 'b) -> 'a list -> 'b list
60 val not : bool -> bool
61 val null : 'a list -> bool
62 val o : ('a -> 'b) * ('c -> 'a) -> 'c -> 'b
63 val ord : char -> int
64 val print : string -> unit
65 val real : int -> real
66 (*
67 val ref : 'a -> 'a ref
68 *)
69 val rev : 'a list -> 'a list
70 val round : real -> int
71 val size : string -> int
72 val str : char -> string
73 val substring : string * int * int -> string
74 val tl : 'a list -> 'a list
75 val trunc : real -> int
76 (*
77 val use : string -> unit
78 *)
79 val valOf : 'a option -> 'a
80 val vector : 'a list -> 'a vector
81
82 (* Required structures *)
83 structure Array : ARRAY
84 structure ArraySlice : ARRAY_SLICE
85 structure BinIO : BIN_IO
86 structure BinPrimIO : PRIM_IO
87 structure Bool : BOOL
88 structure Byte : BYTE
89 structure Char : CHAR
90 structure CharArray : MONO_ARRAY
91 structure CharArraySlice : MONO_ARRAY_SLICE
92 structure CharVector : MONO_VECTOR
93 structure CharVectorSlice : MONO_VECTOR_SLICE
94 structure CommandLine : COMMAND_LINE
95 structure Date : DATE
96 structure General : GENERAL
97 structure IEEEReal : IEEE_REAL
98 structure Int : INTEGER
99 structure IO : IO
100 structure LargeInt : INTEGER
101 structure LargeReal : REAL
102 structure LargeWord : WORD
103 structure List : LIST
104 structure ListPair : LIST_PAIR
105 structure Math : MATH
106 structure Option : OPTION
107 structure OS : OS
108 structure Position : INTEGER
109 structure Real : REAL
110 structure StringCvt : STRING_CVT
111 structure String : STRING
112 structure Substring : SUBSTRING
113 structure TextIO : TEXT_IO
114 structure TextPrimIO : PRIM_IO
115 structure Text : TEXT
116 structure Time : TIME
117 structure Timer : TIMER
118 structure VectorSlice : VECTOR_SLICE
119 structure Vector : VECTOR
120 structure Word : WORD
121 structure Word8: WORD
122 structure Word8Array : MONO_ARRAY
123 structure Word8Array2 : MONO_ARRAY2
124 structure Word8ArraySlice : MONO_ARRAY_SLICE
125 structure Word8Vector : MONO_VECTOR
126 structure Word8VectorSlice : MONO_VECTOR_SLICE
127
128 (* Optional structures *)
129 structure Array2 : ARRAY2
130 structure BoolArray : MONO_ARRAY
131 structure BoolArray2 : MONO_ARRAY2
132 structure BoolArraySlice : MONO_ARRAY_SLICE
133 structure BoolVector : MONO_VECTOR
134 structure BoolVectorSlice : MONO_VECTOR_SLICE
135 structure CharArray2 : MONO_ARRAY2
136 structure FixedInt : INTEGER
137 structure GenericSock : GENERIC_SOCK
138 structure INetSock : INET_SOCK
139 structure IntArray : MONO_ARRAY
140 structure IntArray2 : MONO_ARRAY2
141 structure IntArraySlice : MONO_ARRAY_SLICE
142 structure IntVector : MONO_VECTOR
143 structure IntVectorSlice : MONO_VECTOR_SLICE
144 structure Int1: INTEGER
145 structure Int2: INTEGER
146 structure Int3: INTEGER
147 structure Int4: INTEGER
148 structure Int5: INTEGER
149 structure Int6: INTEGER
150 structure Int7: INTEGER
151 structure Int8: INTEGER
152 structure Int9: INTEGER
153 structure Int10: INTEGER
154 structure Int11: INTEGER
155 structure Int12: INTEGER
156 structure Int13: INTEGER
157 structure Int14: INTEGER
158 structure Int15: INTEGER
159 structure Int16: INTEGER
160 structure Int17: INTEGER
161 structure Int18: INTEGER
162 structure Int19: INTEGER
163 structure Int20: INTEGER
164 structure Int21: INTEGER
165 structure Int22: INTEGER
166 structure Int23: INTEGER
167 structure Int24: INTEGER
168 structure Int25: INTEGER
169 structure Int26: INTEGER
170 structure Int27: INTEGER
171 structure Int28: INTEGER
172 structure Int29: INTEGER
173 structure Int30: INTEGER
174 structure Int31: INTEGER
175 structure Int32: INTEGER
176 structure Int64: INTEGER
177 structure Int8Array : MONO_ARRAY
178 structure Int8Array2 : MONO_ARRAY2
179 structure Int8ArraySlice : MONO_ARRAY_SLICE
180 structure Int8Vector : MONO_VECTOR
181 structure Int8VectorSlice : MONO_VECTOR_SLICE
182 structure Int16Array : MONO_ARRAY
183 structure Int16Array2 : MONO_ARRAY2
184 structure Int16ArraySlice : MONO_ARRAY_SLICE
185 structure Int16Vector : MONO_VECTOR
186 structure Int16VectorSlice : MONO_VECTOR_SLICE
187 structure Int32Array : MONO_ARRAY
188 structure Int32Array2 : MONO_ARRAY2
189 structure Int32ArraySlice : MONO_ARRAY_SLICE
190 structure Int32Vector : MONO_VECTOR
191 structure Int32VectorSlice : MONO_VECTOR_SLICE
192 structure Int64Array : MONO_ARRAY
193 structure Int64Array2 : MONO_ARRAY2
194 structure Int64ArraySlice : MONO_ARRAY_SLICE
195 structure Int64Vector : MONO_VECTOR
196 structure Int64VectorSlice : MONO_VECTOR_SLICE
197 structure IntInf : INT_INF
198 structure IntInfArray : MONO_ARRAY
199 structure IntInfArray2 : MONO_ARRAY2
200 structure IntInfArraySlice : MONO_ARRAY_SLICE
201 structure IntInfVector : MONO_VECTOR
202 structure IntInfVectorSlice : MONO_VECTOR_SLICE
203 structure LargeIntArray : MONO_ARRAY
204 structure LargeIntArray2 : MONO_ARRAY2
205 structure LargeIntArraySlice : MONO_ARRAY_SLICE
206 structure LargeIntVector : MONO_VECTOR
207 structure LargeIntVectorSlice : MONO_VECTOR_SLICE
208 structure LargeRealArray : MONO_ARRAY
209 structure LargeRealArray2 : MONO_ARRAY2
210 structure LargeRealArraySlice : MONO_ARRAY_SLICE
211 structure LargeRealVector : MONO_VECTOR
212 structure LargeRealVectorSlice : MONO_VECTOR_SLICE
213 structure LargeWordArray : MONO_ARRAY
214 structure LargeWordArray2 : MONO_ARRAY2
215 structure LargeWordArraySlice : MONO_ARRAY_SLICE
216 structure LargeWordVector : MONO_VECTOR
217 structure LargeWordVectorSlice : MONO_VECTOR_SLICE
218 structure NetHostDB : NET_HOST_DB
219 structure NetProtDB : NET_PROT_DB
220 structure NetServDB : NET_SERV_DB
221 structure PackReal32Big : PACK_REAL
222 structure PackReal32Little : PACK_REAL
223 structure PackReal64Big : PACK_REAL
224 structure PackReal64Little : PACK_REAL
225 structure PackRealBig : PACK_REAL
226 structure PackRealLittle : PACK_REAL
227 structure PackWord16Big : PACK_WORD
228 structure PackWord16Little : PACK_WORD
229 structure PackWord32Big : PACK_WORD
230 structure PackWord32Little : PACK_WORD
231 structure PackWord64Big : PACK_WORD
232 structure PackWord64Little : PACK_WORD
233 structure Posix : POSIX
234 structure RealArray : MONO_ARRAY
235 structure RealArray2 : MONO_ARRAY2
236 structure RealArraySlice : MONO_ARRAY_SLICE
237 structure RealVector : MONO_VECTOR
238 structure RealVectorSlice : MONO_VECTOR_SLICE
239 structure Real32 : REAL
240 structure Real32Array : MONO_ARRAY
241 structure Real32Array2 : MONO_ARRAY2
242 structure Real32ArraySlice : MONO_ARRAY_SLICE
243 structure Real32Vector : MONO_VECTOR
244 structure Real32VectorSlice : MONO_VECTOR_SLICE
245 structure Real64 : REAL
246 structure Real64Array : MONO_ARRAY
247 structure Real64Array2 : MONO_ARRAY2
248 structure Real64ArraySlice : MONO_ARRAY_SLICE
249 structure Real64Vector : MONO_VECTOR
250 structure Real64VectorSlice : MONO_VECTOR_SLICE
251 structure Socket : SOCKET
252 structure SysWord : WORD
253 structure Unix : UNIX
254 structure UnixSock : UNIX_SOCK
255 structure WideChar : CHAR
256 structure WideCharArray : MONO_ARRAY
257 structure WideCharArray2 : MONO_ARRAY2
258 structure WideCharArraySlice : MONO_ARRAY_SLICE
259 structure WideCharVector : MONO_VECTOR
260 structure WideCharVectorSlice : MONO_VECTOR_SLICE
261 structure WideString : STRING
262 structure WideSubstring : SUBSTRING
263 structure WideText : TEXT
264 (*
265 structure WideTextIO : TEXT_IO
266 structure WideTextPrimIO : PRIM_IO
267 *)
268 (*
269 structure Windows : WINDOWS
270 *)
271 structure WordArray : MONO_ARRAY
272 structure WordArray2 : MONO_ARRAY2
273 structure WordArraySlice : MONO_ARRAY_SLICE
274 structure WordVector : MONO_VECTOR
275 structure WordVectorSlice : MONO_VECTOR_SLICE
276 structure Word1: WORD
277 structure Word2: WORD
278 structure Word3: WORD
279 structure Word4: WORD
280 structure Word5: WORD
281 structure Word6: WORD
282 structure Word7: WORD
283 (* structure Word8: WORD (* Word8 is a required structure *)*)
284 structure Word9: WORD
285 structure Word10: WORD
286 structure Word11: WORD
287 structure Word12: WORD
288 structure Word13: WORD
289 structure Word14: WORD
290 structure Word15: WORD
291 structure Word16: WORD
292 structure Word17: WORD
293 structure Word18: WORD
294 structure Word19: WORD
295 structure Word20: WORD
296 structure Word21: WORD
297 structure Word22: WORD
298 structure Word23: WORD
299 structure Word24: WORD
300 structure Word25: WORD
301 structure Word26: WORD
302 structure Word27: WORD
303 structure Word28: WORD
304 structure Word29: WORD
305 structure Word30: WORD
306 structure Word31: WORD
307 structure Word32: WORD
308 structure Word64: WORD
309 structure Word16Array : MONO_ARRAY
310 structure Word16Array2 : MONO_ARRAY2
311 structure Word16ArraySlice : MONO_ARRAY_SLICE
312 structure Word16Vector : MONO_VECTOR
313 structure Word16VectorSlice : MONO_VECTOR_SLICE
314 structure Word32Array : MONO_ARRAY
315 structure Word32Array2 : MONO_ARRAY2
316 structure Word32ArraySlice : MONO_ARRAY_SLICE
317 structure Word32Vector : MONO_VECTOR
318 structure Word32VectorSlice : MONO_VECTOR_SLICE
319 structure Word64Array : MONO_ARRAY
320 structure Word64Array2 : MONO_ARRAY2
321 structure Word64ArraySlice : MONO_ARRAY_SLICE
322 structure Word64Vector : MONO_VECTOR
323 structure Word64VectorSlice : MONO_VECTOR_SLICE
324
325 (* Non-standard structures *)
326 structure SML90: SML90
327 structure MLton: MLTON
328 structure SMLofNJ: SML_OF_NJ
329 structure Unsafe: UNSAFE
330
331 sharing type MLton.IntInf.t = IntInf.int
332 sharing type MLton.Process.pid = Posix.Process.pid
333 sharing type MLton.ProcEnv.gid = Posix.ProcEnv.gid
334 sharing type MLton.LargeReal.t = LargeReal.real
335 sharing type MLton.LargeWord.t = LargeWord.word
336 sharing type MLton.Real.t = Real.real
337 sharing type MLton.Real32.t = Real32.real
338 sharing type MLton.Real64.t = Real64.real
339 sharing type MLton.Signal.t = Posix.Signal.signal
340 sharing type MLton.Word.t = Word.word
341 sharing type MLton.Word8.t = Word8.word
342 sharing type MLton.Word16.t = Word16.word
343 sharing type MLton.Word32.t = Word32.word
344 sharing type MLton.Word64.t = Word64.word
345 sharing Unsafe.BoolArray = BoolArray
346 sharing Unsafe.BoolVector = BoolVector
347 sharing Unsafe.CharArray = CharArray
348 sharing Unsafe.CharVector = CharVector
349 sharing Unsafe.IntArray = IntArray
350 sharing Unsafe.IntVector = IntVector
351 sharing Unsafe.Int8Array = Int8Array
352 sharing Unsafe.Int8Vector = Int8Vector
353 sharing Unsafe.Int16Array = Int16Array
354 sharing Unsafe.Int16Vector = Int16Vector
355 sharing Unsafe.Int32Array = Int32Array
356 sharing Unsafe.Int32Vector = Int32Vector
357 sharing Unsafe.Int64Array = Int64Array
358 sharing Unsafe.Int64Vector = Int64Vector
359 sharing Unsafe.IntInfArray = IntInfArray
360 sharing Unsafe.IntInfVector = IntInfVector
361 sharing Unsafe.LargeIntArray = LargeIntArray
362 sharing Unsafe.LargeIntVector = LargeIntVector
363 sharing Unsafe.LargeRealArray = LargeRealArray
364 sharing Unsafe.LargeRealVector = LargeRealVector
365 sharing Unsafe.LargeWordArray = LargeWordArray
366 sharing Unsafe.LargeWordVector = LargeWordVector
367 sharing Unsafe.RealArray = RealArray
368 sharing Unsafe.RealVector = RealVector
369 sharing Unsafe.Real32Array = Real32Array
370 sharing Unsafe.Real32Vector = Real32Vector
371 sharing Unsafe.Real64Array = Real64Array
372 sharing Unsafe.Real64Vector = Real64Vector
373 sharing Unsafe.WordArray = WordArray
374 sharing Unsafe.WordVector = WordVector
375 sharing Unsafe.Word8Array = Word8Array
376 sharing Unsafe.Word8Vector = Word8Vector
377 sharing Unsafe.Word16Array = Word16Array
378 sharing Unsafe.Word16Vector = Word16Vector
379 sharing Unsafe.Word32Array = Word32Array
380 sharing Unsafe.Word32Vector = Word32Vector
381 sharing Unsafe.Word64Array = Word64Array
382 sharing Unsafe.Word64Vector = Word64Vector
383 sharing Unsafe.PackReal32Big = PackReal32Big
384 sharing Unsafe.PackReal32Little = PackReal32Little
385 sharing Unsafe.PackReal64Big = PackReal64Big
386 sharing Unsafe.PackReal64Little = PackReal64Little
387 sharing Unsafe.PackRealBig = PackRealBig
388 sharing Unsafe.PackRealLittle = PackRealLittle
389 sharing Unsafe.PackWord16Big = PackWord16Big
390 sharing Unsafe.PackWord16Little = PackWord16Little
391 sharing Unsafe.PackWord32Big = PackWord32Big
392 sharing Unsafe.PackWord32Little = PackWord32Little
393 sharing Unsafe.PackWord64Big = PackWord64Big
394 sharing Unsafe.PackWord64Little = PackWord64Little
395
396 (* ************************************************** *)
397 (* ************************************************** *)
398
399 (* Sharing constraints *)
400
401 (* Top-level types *)
402 sharing type unit = General.unit
403 sharing type int = Int.int
404 sharing type word = Word.word
405 sharing type real = Real.real
406 sharing type char = Char.char
407 sharing type string = String.string
408 sharing type substring = Substring.substring
409 sharing type exn = General.exn
410 (* Can't use sharing on type array or vector, because they are rigid tycons.
411 * Don't need it anyways, since it's built into the ARRAY and VECTOR signatures.
412 *)
413 (*
414 sharing type array = Array.array
415 sharing type vector = Vector.vector
416 *)
417 (*
418 sharing type ref = General.ref
419 *)
420 (*
421 sharing type bool = Bool.bool
422 *)
423 sharing type option = Option.option
424 sharing type order = General.order
425 (*
426 sharing type list = List.list
427 *)
428
429 (* Required structures *)
430 (*
431 sharing type BinIO.StreamIO.elem = Word8.word
432 *)
433 sharing type BinIO.StreamIO.reader = BinPrimIO.reader
434 sharing type BinIO.StreamIO.pos = BinPrimIO.pos
435 (*
436 sharing type BinIO.StreamIO.vector = Word8Vector.vector
437 *)
438 sharing type BinIO.StreamIO.writer = BinPrimIO.writer
439 sharing type BinPrimIO.array = Word8Array.array
440 sharing type BinPrimIO.array_slice = Word8ArraySlice.slice
441 sharing type BinPrimIO.elem = Word8.word
442 sharing type BinPrimIO.pos = Position.int
443 sharing type BinPrimIO.vector = Word8Vector.vector
444 sharing type BinPrimIO.vector_slice = Word8VectorSlice.slice
445 sharing type Char.char = char
446 sharing type Char.string = String.string
447 sharing type CharArray.elem = char
448 sharing type CharArray.vector = CharVector.vector
449 sharing type CharArraySlice.elem = char
450 sharing type CharArraySlice.array = CharArray.array
451 sharing type CharArraySlice.vector = CharVector.vector
452 sharing type CharArraySlice.vector_slice = CharVectorSlice.slice
453 sharing type CharVector.elem = char
454 sharing type CharVector.vector = String.string
455 sharing type CharVectorSlice.elem = char
456 sharing type CharVectorSlice.vector = String.string
457 sharing type CharVectorSlice.slice = Substring.substring
458 sharing type Int.int = int
459 sharing type Math.real = Real.real
460 sharing type Real.real = real
461 sharing type String.string = string
462 sharing type String.string = CharVector.vector
463 sharing type String.char = Char.char
464 sharing type Substring.substring = CharVectorSlice.slice
465 sharing type Substring.string = String.string
466 sharing type Substring.char = Char.char
467 sharing type Text.Char.char = Char.char
468 sharing type Text.String.string = String.string
469 sharing type Text.Substring.substring = Substring.substring
470 sharing type Text.CharVector.vector = CharVector.vector
471 sharing type Text.CharArray.array = CharArray.array
472 sharing type Text.CharArraySlice.slice = CharArraySlice.slice
473 sharing type Text.CharVectorSlice.slice = CharVectorSlice.slice
474 (* redundant *)
475 (*
476 sharing type TextIO.elem = char
477 sharing type TextIO.vector = string
478 *)
479 sharing type TextPrimIO.array = CharArray.array
480 sharing type TextPrimIO.array_slice = CharArraySlice.slice
481 sharing type TextPrimIO.elem = Char.char
482 sharing type TextPrimIO.pos = Position.int
483 sharing type TextPrimIO.vector = CharVector.vector
484 sharing type TextPrimIO.vector_slice = CharVectorSlice.slice
485 sharing type Word.word = word
486 sharing type Word8Array.elem = Word8.word
487 sharing type Word8Array.vector = Word8Vector.vector
488 sharing type Word8ArraySlice.elem = Word8.word
489 sharing type Word8ArraySlice.array = Word8Array.array
490 sharing type Word8ArraySlice.vector = Word8Vector.vector
491 sharing type Word8ArraySlice.vector_slice = Word8VectorSlice.slice
492 sharing type Word8Vector.elem = Word8.word
493 sharing type Word8VectorSlice.elem = Word8.word
494 sharing type Word8VectorSlice.vector = Word8Vector.vector
495 sharing type Word8Array2.elem = Word8.word
496 sharing type Word8Array2.vector = Word8Vector.vector
497
498 (* Optional structures *)
499 sharing type BoolArray.vector = BoolVector.vector
500 sharing type BoolArraySlice.array = BoolArray.array
501 sharing type BoolArraySlice.vector = BoolVector.vector
502 sharing type BoolArraySlice.vector_slice = BoolVectorSlice.slice
503 sharing type BoolVectorSlice.vector = BoolVector.vector
504 sharing type BoolArray2.vector = BoolVector.vector
505 sharing type CharArray2.elem = char
506 sharing type CharArray2.vector = CharVector.vector
507 sharing type IntArray.elem = int
508 sharing type IntArray.vector = IntVector.vector
509 sharing type IntArraySlice.elem = int
510 sharing type IntArraySlice.array = IntArray.array
511 sharing type IntArraySlice.vector = IntVector.vector
512 sharing type IntArraySlice.vector_slice = IntVectorSlice.slice
513 sharing type IntVector.elem = int
514 sharing type IntVectorSlice.elem = int
515 sharing type IntVectorSlice.vector = IntVector.vector
516 sharing type IntArray2.elem = int
517 sharing type IntArray2.vector = IntVector.vector
518 sharing type Int8Array.elem = Int8.int
519 sharing type Int8Array.vector = Int8Vector.vector
520 sharing type Int8ArraySlice.elem = Int8.int
521 sharing type Int8ArraySlice.array = Int8Array.array
522 sharing type Int8ArraySlice.vector = Int8Vector.vector
523 sharing type Int8ArraySlice.vector_slice = Int8VectorSlice.slice
524 sharing type Int8Vector.elem = Int8.int
525 sharing type Int8VectorSlice.elem = Int8.int
526 sharing type Int8VectorSlice.vector = Int8Vector.vector
527 sharing type Int8Array2.elem = Int8.int
528 sharing type Int8Array2.vector = Int8Vector.vector
529 sharing type Int16Array.elem = Int16.int
530 sharing type Int16Array.vector = Int16Vector.vector
531 sharing type Int16ArraySlice.elem = Int16.int
532 sharing type Int16ArraySlice.array = Int16Array.array
533 sharing type Int16ArraySlice.vector = Int16Vector.vector
534 sharing type Int16ArraySlice.vector_slice = Int16VectorSlice.slice
535 sharing type Int16Vector.elem = Int16.int
536 sharing type Int16VectorSlice.elem = Int16.int
537 sharing type Int16VectorSlice.vector = Int16Vector.vector
538 sharing type Int16Array2.elem = Int16.int
539 sharing type Int16Array2.vector = Int16Vector.vector
540 sharing type Int32Array.elem = Int32.int
541 sharing type Int32Array.vector = Int32Vector.vector
542 sharing type Int32ArraySlice.elem = Int32.int
543 sharing type Int32ArraySlice.array = Int32Array.array
544 sharing type Int32ArraySlice.vector = Int32Vector.vector
545 sharing type Int32ArraySlice.vector_slice = Int32VectorSlice.slice
546 sharing type Int32Vector.elem = Int32.int
547 sharing type Int32VectorSlice.elem = Int32.int
548 sharing type Int32VectorSlice.vector = Int32Vector.vector
549 sharing type Int32Array2.elem = Int32.int
550 sharing type Int32Array2.vector = Int32Vector.vector
551 sharing type Int64Array.elem = Int64.int
552 sharing type Int64Array.vector = Int64Vector.vector
553 sharing type Int64ArraySlice.elem = Int64.int
554 sharing type Int64ArraySlice.array = Int64Array.array
555 sharing type Int64ArraySlice.vector = Int64Vector.vector
556 sharing type Int64ArraySlice.vector_slice = Int64VectorSlice.slice
557 sharing type Int64Vector.elem = Int64.int
558 sharing type Int64VectorSlice.elem = Int64.int
559 sharing type Int64VectorSlice.vector = Int64Vector.vector
560 sharing type Int64Array2.elem = Int64.int
561 sharing type Int64Array2.vector = Int64Vector.vector
562 sharing type LargeIntArray.elem = LargeInt.int
563 sharing type LargeIntArray.vector = LargeIntVector.vector
564 sharing type LargeIntArraySlice.elem = LargeInt.int
565 sharing type LargeIntArraySlice.array = LargeIntArray.array
566 sharing type LargeIntArraySlice.vector = LargeIntVector.vector
567 sharing type LargeIntArraySlice.vector_slice = LargeIntVectorSlice.slice
568 sharing type LargeIntVector.elem = LargeInt.int
569 sharing type LargeIntVectorSlice.elem = LargeInt.int
570 sharing type LargeIntVectorSlice.vector = LargeIntVector.vector
571 sharing type LargeIntArray2.elem = LargeInt.int
572 sharing type LargeIntArray2.vector = LargeIntVector.vector
573 sharing type LargeRealArray.elem = LargeReal.real
574 sharing type LargeRealArray.vector = LargeRealVector.vector
575 sharing type LargeRealArraySlice.elem = LargeReal.real
576 sharing type LargeRealArraySlice.array = LargeRealArray.array
577 sharing type LargeRealArraySlice.vector = LargeRealVector.vector
578 sharing type LargeRealArraySlice.vector_slice = LargeRealVectorSlice.slice
579 sharing type LargeRealVector.elem = LargeReal.real
580 sharing type LargeRealVectorSlice.elem = LargeReal.real
581 sharing type LargeRealVectorSlice.vector = LargeRealVector.vector
582 sharing type LargeRealArray2.elem = LargeReal.real
583 sharing type LargeRealArray2.vector = LargeRealVector.vector
584 sharing type LargeWordArray.elem = LargeWord.word
585 sharing type LargeWordArray.vector = LargeWordVector.vector
586 sharing type LargeWordArraySlice.elem = LargeWord.word
587 sharing type LargeWordArraySlice.array = LargeWordArray.array
588 sharing type LargeWordArraySlice.vector = LargeWordVector.vector
589 sharing type LargeWordArraySlice.vector_slice = LargeWordVectorSlice.slice
590 sharing type LargeWordVector.elem = LargeWord.word
591 sharing type LargeWordVectorSlice.elem = LargeWord.word
592 sharing type LargeWordVectorSlice.vector = LargeWordVector.vector
593 sharing type LargeWordArray2.elem = LargeWord.word
594 sharing type LargeWordArray2.vector = LargeWordVector.vector
595 sharing type PackRealBig.real = real
596 sharing type PackRealLittle.real = real
597 sharing type PackReal32Big.real = Real32.real
598 sharing type PackReal32Little.real = Real32.real
599 sharing type PackReal64Big.real = Real64.real
600 sharing type PackReal64Little.real = Real64.real
601 sharing type Posix.Error.syserror = OS.syserror
602 sharing type Posix.IO.file_desc = Posix.ProcEnv.file_desc
603 sharing type Posix.FileSys.dirstream = OS.FileSys.dirstream
604 sharing type Posix.FileSys.access_mode = OS.FileSys.access_mode
605 sharing type Posix.Process.exit_status = Unix.exit_status
606 sharing type Posix.Signal.signal = Unix.signal
607 sharing type RealArray.elem = real
608 sharing type RealArray.vector = RealVector.vector
609 sharing type RealArraySlice.elem = real
610 sharing type RealArraySlice.array = RealArray.array
611 sharing type RealArraySlice.vector = RealVector.vector
612 sharing type RealArraySlice.vector_slice = RealVectorSlice.slice
613 sharing type RealVector.elem = real
614 sharing type RealVectorSlice.elem = real
615 sharing type RealVectorSlice.vector = RealVector.vector
616 sharing type RealArray2.elem = real
617 sharing type RealArray2.vector = RealVector.vector
618 sharing type Real32Array.elem = Real32.real
619 sharing type Real32Array.vector = Real32Vector.vector
620 sharing type Real32ArraySlice.elem = Real32.real
621 sharing type Real32ArraySlice.array = Real32Array.array
622 sharing type Real32ArraySlice.vector = Real32Vector.vector
623 sharing type Real32ArraySlice.vector_slice = Real32VectorSlice.slice
624 sharing type Real32Vector.elem = Real32.real
625 sharing type Real32VectorSlice.elem = Real32.real
626 sharing type Real32VectorSlice.vector = Real32Vector.vector
627 sharing type Real32Array2.elem = Real32.real
628 sharing type Real32Array2.vector = Real32Vector.vector
629 sharing type Real64Array.elem = Real64.real
630 sharing type Real64Array.vector = Real64Vector.vector
631 sharing type Real64ArraySlice.elem = Real64.real
632 sharing type Real64ArraySlice.array = Real64Array.array
633 sharing type Real64ArraySlice.vector = Real64Vector.vector
634 sharing type Real64ArraySlice.vector_slice = Real64VectorSlice.slice
635 sharing type Real64Vector.elem = Real64.real
636 sharing type Real64VectorSlice.elem = Real64.real
637 sharing type Real64VectorSlice.vector = Real64Vector.vector
638 sharing type Real64Array2.elem = Real64.real
639 sharing type Real64Array2.vector = Real64Vector.vector
640 sharing type Unix.exit_status = Posix.Process.exit_status
641 sharing type WideChar.string = WideString.string
642 sharing type WideCharArray.elem = WideChar.char
643 sharing type WideCharArray.vector = WideCharVector.vector
644 sharing type WideCharArray2.elem = WideChar.char
645 sharing type WideCharArray2.vector = WideCharVector.vector
646 sharing type WideCharArraySlice.elem = WideChar.char
647 sharing type WideCharArraySlice.array = WideCharArray.array
648 sharing type WideCharArraySlice.vector = WideCharVector.vector
649 sharing type WideCharArraySlice.vector_slice = WideCharVectorSlice.slice
650 sharing type WideCharVector.elem = WideChar.char
651 sharing type WideCharVector.vector = WideString.string
652 sharing type WideCharVectorSlice.elem = WideChar.char
653 sharing type WideCharVectorSlice.slice = WideSubstring.substring
654 sharing type WideCharVectorSlice.vector = WideString.string
655 sharing type WideString.char = WideChar.char
656 (* next two are redundant? basis & char both do it... *)
657 sharing type WideString.string = WideCharVector.vector
658 sharing type WideSubstring.substring = WideCharVectorSlice.slice
659 sharing type WideSubstring.string = WideString.string
660 sharing type WideSubstring.char = WideChar.char
661 sharing type WideText.Char.char = WideChar.char
662 sharing type WideText.String.string = WideString.string
663 sharing type WideText.Substring.substring = WideSubstring.substring
664 sharing type WideText.CharVector.vector = WideCharVector.vector
665 sharing type WideText.CharArray.array = WideCharArray.array
666 sharing type WideText.CharArraySlice.slice = WideCharArraySlice.slice
667 sharing type WideText.CharVectorSlice.slice = WideCharVectorSlice.slice
668 (*
669 sharing type WideTextIO.
670 sharing type WideTextPrimIO.array = WideCharArray.array
671 sharing type WideTextPrimIO.vector = WideCharVector.vector
672 sharing type WideTextPrimIO.elem = WideChar.char
673 *)
674 sharing type WordArray.elem = word
675 sharing type WordArray.vector = WordVector.vector
676 sharing type WordArraySlice.elem = word
677 sharing type WordArraySlice.array = WordArray.array
678 sharing type WordArraySlice.vector = WordVector.vector
679 sharing type WordArraySlice.vector_slice = WordVectorSlice.slice
680 sharing type WordVector.elem = word
681 sharing type WordVectorSlice.elem = word
682 sharing type WordVectorSlice.vector = WordVector.vector
683 sharing type WordArray2.elem = word
684 sharing type WordArray2.vector = WordVector.vector
685 sharing type Word16Array.elem = Word16.word
686 sharing type Word16Array.vector = Word16Vector.vector
687 sharing type Word16ArraySlice.elem = Word16.word
688 sharing type Word16ArraySlice.array = Word16Array.array
689 sharing type Word16ArraySlice.vector = Word16Vector.vector
690 sharing type Word16ArraySlice.vector_slice = Word16VectorSlice.slice
691 sharing type Word16Vector.elem = Word16.word
692 sharing type Word16VectorSlice.elem = Word16.word
693 sharing type Word16VectorSlice.vector = Word16Vector.vector
694 sharing type Word16Array2.elem = Word16.word
695 sharing type Word16Array2.vector = Word16Vector.vector
696 sharing type Word32Array.elem = Word32.word
697 sharing type Word32Array.vector = Word32Vector.vector
698 sharing type Word32ArraySlice.elem = Word32.word
699 sharing type Word32ArraySlice.array = Word32Array.array
700 sharing type Word32ArraySlice.vector = Word32Vector.vector
701 sharing type Word32ArraySlice.vector_slice = Word32VectorSlice.slice
702 sharing type Word32Vector.elem = Word32.word
703 sharing type Word32VectorSlice.elem = Word32.word
704 sharing type Word32VectorSlice.vector = Word32Vector.vector
705 sharing type Word32Array2.elem = Word32.word
706 sharing type Word32Array2.vector = Word32Vector.vector
707 sharing type Word64Array.elem = Word64.word
708 sharing type Word64Array.vector = Word64Vector.vector
709 sharing type Word64ArraySlice.elem = Word64.word
710 sharing type Word64ArraySlice.array = Word64Array.array
711 sharing type Word64ArraySlice.vector = Word64Vector.vector
712 sharing type Word64ArraySlice.vector_slice = Word64VectorSlice.slice
713 sharing type Word64Vector.elem = Word64.word
714 sharing type Word64VectorSlice.elem = Word64.word
715 sharing type Word64VectorSlice.vector = Word64Vector.vector
716 sharing type Word64Array2.elem = Word64.word
717 sharing type Word64Array2.vector = Word64Vector.vector
718 sharing type MLton.BinIO.instream = BinIO.instream
719 sharing type MLton.BinIO.outstream = BinIO.outstream
720 sharing type MLton.CharArray.t = CharArray.array
721 sharing type MLton.CharArray.elem = CharArray.elem
722 sharing type MLton.CharVector.t = CharVector.vector
723 sharing type MLton.CharVector.elem = CharVector.elem
724 sharing type MLton.TextIO.instream = TextIO.instream
725 sharing type MLton.TextIO.outstream = TextIO.outstream
726 sharing type MLton.Word8Array.t = Word8Array.array
727 sharing type MLton.Word8Array.elem = Word8Array.elem
728 sharing type MLton.Word8Vector.t = Word8Vector.vector
729 sharing type MLton.Word8Vector.elem = Word8Vector.elem
730 end
731 (* bool is already defined as bool and so cannot be shared.
732 * So, we where these to get the needed sharing.
733 *)
734 where type BoolArray.elem = bool
735 where type BoolArray2.elem = bool
736 where type BoolArraySlice.elem = bool
737 where type BoolVector.elem = bool
738 where type BoolVectorSlice.elem = bool
739
740 (* Top-level types. These appear free in basis signatures and hence must be
741 * the same in the basis as at the top level.
742 *)
743 where type 'a array = 'a array
744 where type 'a option = 'a option
745 where type 'a vector = 'a vector
746 where type char = char
747 where type exn = exn
748 where type int = int
749 where type order = order
750 where type real = real
751 where type string = string
752 where type substring = substring
753 where type unit = unit
754 where type word = word
755
756 (* Types referenced in signatures by structure name *)
757 (*
758 where type 'a Array.array = 'a Array.array
759 *)
760 where type Array2.traversal = Array2.traversal
761 where type 'a ArraySlice.slice = 'a ArraySlice.slice
762 where type BinIO.instream = BinIO.instream (* UNIX *)
763 where type BinIO.outstream = BinIO.outstream (* UNIX *)
764 where type BinPrimIO.reader = BinPrimIO.reader (* POSIX_IO *)
765 where type BinPrimIO.writer = BinPrimIO.writer (* POSIX_IO *)
766 where type IO.buffer_mode = IO.buffer_mode
767 where type LargeInt.int = LargeInt.int
768 where type LargeReal.real = LargeReal.real
769 where type LargeWord.word = LargeWord.word
770 where type IEEEReal.real_order = IEEEReal.real_order
771 where type IEEEReal.float_class = IEEEReal.float_class
772 where type IEEEReal.rounding_mode = IEEEReal.rounding_mode
773 where type NetHostDB.in_addr = NetHostDB.in_addr
774 where type NetHostDB.addr_family = NetHostDB.addr_family
775 where type OS.IO.iodesc = OS.IO.iodesc (* PRIM_IO, POSIX_FILE_SYS *)
776 where type OS.Process.status = OS.Process.status (* UNIX, POSIX_PROCESS *)
777 where type Position.int = Position.int
778 where type Posix.IO.file_desc = Posix.IO.file_desc
779 where type Posix.Process.exit_status = Posix.Process.exit_status
780 where type Posix.Signal.signal = Posix.Signal.signal
781 where type Socket.dgram = Socket.dgram
782 where type ('a, 'b) Socket.sock = ('a, 'b) Socket.sock
783 where type 'a Socket.sock_addr = 'a Socket.sock_addr
784 where type Socket.SOCK.sock_type = Socket.SOCK.sock_type (* GENERIC_SOCK *)
785 where type 'a Socket.stream = 'a Socket.stream
786 where type StringCvt.radix = StringCvt.radix
787 where type StringCvt.realfmt = StringCvt.realfmt
788 (*
789 where type ('a, 'b) StringCvt.reader = ('a, 'b) StringCvt.reader
790 *)
791 where type SysWord.word = SysWord.word
792 where type TextIO.instream = TextIO.instream (* UNIX *)
793 where type TextIO.outstream = TextIO.outstream (* UNIX *)
794 where type TextPrimIO.reader = TextPrimIO.reader (* POSIX_IO *)
795 where type TextPrimIO.writer = TextPrimIO.writer (* POSIX_IO *)
796 where type Time.time = Time.time
797 (*
798 where type 'a Vector.vector = 'a Vector.vector
799 *)
800 where type 'a VectorSlice.slice = 'a VectorSlice.slice
801 (*
802 where type WideTextIO.instream = WideTextIO.instream
803 where type WideTextIO.outstream = WideTextIO.outstream
804 where type WideTextPrimIO.reader = WideTextPrimIO.reader
805 where type WideTextPrimIO.writer = WideTextPrimIO.writer
806 *)
807 where type Word8Array.array = Word8Array.array
808 where type Word8ArraySlice.slice = Word8ArraySlice.slice
809 where type Word8ArraySlice.vector_slice = Word8ArraySlice.vector_slice
810 where type Word8Vector.vector = Word8Vector.vector
811
812 where type MLton.Pointer.t = MLton.Pointer.t
813 where type 'a MLton.Thread.t = 'a MLton.Thread.t
814 where type MLton.Thread.Runnable.t = MLton.Thread.Runnable.t
815
816 (* Types that must be exposed because constants denote them. *)
817 where type FixedInt.int = FixedInt.int
818 where type Int1.int = Int1.int
819 where type Int2.int = Int2.int
820 where type Int3.int = Int3.int
821 where type Int4.int = Int4.int
822 where type Int5.int = Int5.int
823 where type Int6.int = Int6.int
824 where type Int7.int = Int7.int
825 where type Int8.int = Int8.int
826 where type Int9.int = Int9.int
827 where type Int10.int = Int10.int
828 where type Int11.int = Int11.int
829 where type Int12.int = Int12.int
830 where type Int13.int = Int13.int
831 where type Int14.int = Int14.int
832 where type Int15.int = Int15.int
833 where type Int16.int = Int16.int
834 where type Int17.int = Int17.int
835 where type Int18.int = Int18.int
836 where type Int19.int = Int19.int
837 where type Int20.int = Int20.int
838 where type Int21.int = Int21.int
839 where type Int22.int = Int22.int
840 where type Int23.int = Int23.int
841 where type Int24.int = Int24.int
842 where type Int25.int = Int25.int
843 where type Int26.int = Int26.int
844 where type Int27.int = Int27.int
845 where type Int28.int = Int28.int
846 where type Int29.int = Int29.int
847 where type Int30.int = Int30.int
848 where type Int31.int = Int31.int
849 where type Int32.int = Int32.int
850 where type Int64.int = Int64.int
851 where type IntInf.int = IntInf.int
852 where type Real32.real = Real32.real
853 where type Real64.real = Real64.real
854 where type WideChar.char = WideChar.char
855 where type WideString.string = WideString.string
856 where type Word1.word = Word1.word
857 where type Word2.word = Word2.word
858 where type Word3.word = Word3.word
859 where type Word4.word = Word4.word
860 where type Word5.word = Word5.word
861 where type Word6.word = Word6.word
862 where type Word7.word = Word7.word
863 where type Word8.word = Word8.word
864 where type Word9.word = Word9.word
865 where type Word10.word = Word10.word
866 where type Word11.word = Word11.word
867 where type Word12.word = Word12.word
868 where type Word13.word = Word13.word
869 where type Word14.word = Word14.word
870 where type Word15.word = Word15.word
871 where type Word16.word = Word16.word
872 where type Word17.word = Word17.word
873 where type Word18.word = Word18.word
874 where type Word19.word = Word19.word
875 where type Word20.word = Word20.word
876 where type Word21.word = Word21.word
877 where type Word22.word = Word22.word
878 where type Word23.word = Word23.word
879 where type Word24.word = Word24.word
880 where type Word25.word = Word25.word
881 where type Word26.word = Word26.word
882 where type Word27.word = Word27.word
883 where type Word28.word = Word28.word
884 where type Word29.word = Word29.word
885 where type Word30.word = Word30.word
886 where type Word31.word = Word31.word
887 where type Word32.word = Word32.word
888 where type Word64.word = Word64.word