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''.
