1 signature BASIS_EXTRA =
5 datatype bool = datatype bool
9 datatype 'a option = NONE | SOME of 'a
10 datatype order = LESS | EQUAL | GREATER
11 datatype list = datatype list
12 datatype ref = datatype ref
20 (* Top-level exceptions *)
26 exception Fail of string
34 (* Top-level values *)
35 val = : ''a * ''a -> bool
36 val <> : ''a * ''a -> bool
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
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
64 val print : string -> unit
65 val real : int -> real
67 val ref : 'a -> 'a ref
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
77 val use : string -> unit
79 val valOf : 'a option -> 'a
80 val vector : 'a list -> 'a vector
82 (* Required structures *)
83 structure Array : ARRAY
84 structure ArraySlice : ARRAY_SLICE
85 structure BinIO : BIN_IO
86 structure BinPrimIO : PRIM_IO
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
96 structure General : GENERAL
97 structure IEEEReal : IEEE_REAL
98 structure Int : INTEGER
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
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
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
265 structure WideTextIO : TEXT_IO
266 structure WideTextPrimIO : PRIM_IO
269 structure Windows : WINDOWS
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
325 (* Non-standard structures *)
326 structure SML90: SML90
327 structure MLton: MLTON
328 structure SMLofNJ: SML_OF_NJ
329 structure Unsafe: UNSAFE
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
396 (* ************************************************** *)
397 (* ************************************************** *)
399 (* Sharing constraints *)
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.
414 sharing type array = Array.array
415 sharing type vector = Vector.vector
418 sharing type ref = General.ref
421 sharing type bool = Bool.bool
423 sharing type option = Option.option
424 sharing type order = General.order
426 sharing type list = List.list
429 (* Required structures *)
431 sharing type BinIO.StreamIO.elem = Word8.word
433 sharing type BinIO.StreamIO.reader = BinPrimIO.reader
434 sharing type BinIO.StreamIO.pos = BinPrimIO.pos
436 sharing type BinIO.StreamIO.vector = Word8Vector.vector
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
476 sharing type TextIO.elem = char
477 sharing type TextIO.vector = string
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
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
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
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
731 (* bool is already defined as bool and so cannot be shared.
732 * So, we where these to get the needed sharing.
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
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.
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
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
756 (* Types referenced in signatures by structure name *)
758 where type 'a Array.array = 'a Array.array
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
789 where type ('a, 'b) StringCvt.reader = ('a, 'b) StringCvt.reader
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
798 where type 'a Vector.vector = 'a Vector.vector
800 where type 'a VectorSlice.slice = 'a VectorSlice.slice
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
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
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
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