This section describes the basis library modules that are either completely or partially implemented in MLton. For each module, it lists what is unimplemented, or, if many functions are unimplemented, then the complete signature is given. It also specifies which of the implemented functions are known to deviate from the basis library specification. If a module does not appear, it is unimplemented. The modules are grouped as in the basis library specification. If you need a part of the basis library and it is unimplemented, send mail to MLton@research.nj.nec.com.
The only toplevel value that is not implemented is:
val use: string -> unit
General: GENERAL
Option: OPTION
Bool: BOOL
SML90: SML90
Char: CHAR
String: STRING
Substring: SUBSTRING
StringCvt: STRING_CVT
Byte: BYTE
Int: INTEGER
No overflow checking on +
, -
, *
.
LargeInt: INTEGER
Int32: INTEGER
No overflow checking on +
, -
, *
.
IntInf: INT_INF
Missing div
, mod
, divMod
, quotRem
, log2
, orb
, xorb
, andb
, notb
, <<
, ~>>
.
Word: WORD
Word8: WORD
LargeWord: WORD
Word32: WORD
SysWord: WORD
Pack32Big: PACK_WORD
Pack32Little: PACK_WORD
Real: REAL
Missing: toLargeInt
, fromLargeInt
,
nextAfter
, toDecimal
,
fromDecimal
.
fmt
, toString
, fromString
,
scan
do not match the basis library specification.
LargeReal: REAL
Math: MATH
IEEEReal: IEEE_REAL
List: LIST
ListPair: LIST_PAIR
Vector: VECTOR
BoolVector: MONO_VECTOR
CharVector: MONO_VECTOR
IntVector: MONO_VECTOR
RealVector: MONO_VECTOR
Word8Vector: MONO_VECTOR
Array: ARRAY
BoolArray: MONO_ARRAY
CharArray: MONO_ARRAY
IntArray: MONO_ARRAY
RealArray: MONO_ARRAY
Word8Array: MONO_ARRAY
Array2: ARRAY2
Missing copy
.
BoolArray2: MONO_ARRAY2
Missing copy
.
CharArray2: MONO_ARRAY2
Missing copy
.
IntArray2: MONO_ARRAY2
Missing copy
.
RealArray2: MONO_ARRAY2
Missing copy
.
Word8Array2: MONO_ARRAY2
Missing copy
.
IO: IO
TextIO: TEXT_IO
signature TEXT_IO =
sig
structure StreamIO: TEXT_STREAM_IO
type vector
type elem
type instream
val stdIn: instream
val openIn: string -> instream
val closeIn: instream -> unit
val input: instream -> vector
val input1: instream -> elem option
val inputN: instream * int -> vector
val inputAll: instream -> vector
val canInput: instream * int -> int option
val endOfStream: instream -> bool
val lookahead: instream -> elem option
val inputLine: instream -> string
val scanStream:
((Char.char, StreamIO.instream) StringCvt.reader
-> ('a, StreamIO.instream) StringCvt.reader)
-> instream -> 'a option
type outstream
val stdOut: outstream
val stdErr: outstream
val openOut: string -> outstream
val openAppend: string -> outstream
val output: outstream * vector -> unit
val output1: outstream * elem -> unit
val flushOut: outstream -> unit
val closeOut: outstream -> unit
val mkOutstream: StreamIO.outstream -> outstream
val getOutstream: outstream -> StreamIO.outstream
val setOutstream: outstream * StreamIO.outstream -> unit
val print: string -> unit
end
OS: OS
OS.FileSys: OS_FILE_SYS
OS.IO: OS_IO
signature OS_IO =
sig
eqtype iodesc
val hash: iodesc -> word
val compare: (iodesc * iodesc) -> order
eqtype iodesc_kind
val kind: iodesc -> iodesc_kind
structure Kind:
sig
val file: iodesc_kind
val dir: iodesc_kind
val symlink: iodesc_kind
val tty: iodesc_kind
val pipe: iodesc_kind
val socket: iodesc_kind
val device: iodesc_kind
end
end
OS.Path: OS_PATH
Missing InvalidArc
, toUnixPath
, fromUnixPath
.
OS.Process: OS_PROCESS
CommandLine: COMMAND_LINE
Unix: UNIX
Date: DATE
Time: TIME
Timer: TIMER
Posix: POSIX
Posix.Error: POSIX_ERROR
Posix.FileSys: POSIX_FILESYS
Posix.Flags: POSIX_FLAGS
Posix.IO: POSIX_IO
Posix.ProcEnv: POSIX_PROC_ENV
Posix.Process: POSIX_PROCESS
Posix.Signal: POSIX_SIGNAL
Posix.SysDB: POSIX_SYS_DB
Posix.TTY: POSIX_TTY