The following changes were made to the SML/NJ Library, in addition to deriving the {{{.mlb}}} files from the {{{.cm}}} files: * {{{Util/redblack-set-fn.sml}}} (modified): Rewrote use of {{{where}}} structure specification. * {{{Util/redblack-map-fn.sml}}} (modified): Rewrote use of {{{where}}} structure specification. * {{{Util/graph-scc-fn.sml}}} (modified): Rewrote use of {{{where}}} structure specification. * {{{Util/bit-array.sml}}} (modified): The computation of the {{{maxLen}}} is given by: {{{ val maxLen = 8*Word8Array.maxLen }}} This is fine in SML/NJ where {{{Word8Array.maxLen}}} is 16777215, but in MLton, {{{Word8Array.maxLen}}} is equal to {{{valOf(Int.maxInt)}}}, so the computation overflows. To accommodate both SML/NJ and MLton, the computation is replaced by {{{ val maxLen = (8*Word8Array.maxLen) handle Overflow => Word8Array.maxLen }}} * {{{Util/engine.mlton.sml}}} (added, not exported): Implements {{{structure Engine}}}, providing time-limited, resumable computations using ["MLtonThread"], ["MLtonSignal"], and ["MLtonItimer"]. * {{{Util/time-limit.mlton.sml}}} (added): Implements {{{structure TimeLimit}}} using {{{structure Engine}}}. The SML/NJ implementation of {{{structure TimeLimit}}} uses SML/NJ's first-class continuations, signals, and interval timer. * {{{Util/time-limit.mlb}}} (added): Exports {{{structure TimeLimit}}}, which is ''not'' exported by {{{smlnj-lib.mlb}}}. Since MLton is very conservative in the presence of threads and signals, program performance may be adversely affected by unnecessarily including {{{structure TimeLimit}}}. * {{{HTML/html-elements-fn.sml}}} (modified): Rewrote use of ''or-patterns''. * {{{HTML/html-attrs-fn.sml}}} (modified): Rewrote use of ''or-patterns''.