[MLton] cvs commit: reorganized Basis Library .mlbs

Matthew Fluet fluet@mlton.org
Wed, 4 Aug 2004 17:36:50 -0700


fluet       04/08/04 17:36:49

  Modified:    .        Makefile
               basis-library README basis-1997.mlb basis-2002.mlb
                        basis-none.mlb equal.mlb infixes.mlb
                        pervasive-exns.mlb pervasive-types.mlb
                        pervasive-vals.mlb
               basis-library/arrays-and-vectors sequence.fun
               basis-library/general sml90.sml
               basis-library/libs/basis-1997/top-level basis-funs.sml
                        basis.sml top-level.sml
               basis-library/libs/basis-2002/top-level basis.sig basis.sml
                        pervasive-exns.sml pervasive-types.sml
                        pervasive-vals.sml top-level.sml
               basis-library/libs/basis-none/top-level basis.sig basis.sml
               basis-library/mlton mlton.sig
               basis-library/sml-nj sml-nj.sml
               bin      regression
               mlton/control control.sml
               mlton/front-end import.cm mlb-front-end.fun
               mlton/main compile.fun
  Added:       basis-library mlton.mlb sml-nj.mlb unsafe.mlb
               basis-library/libs all.mlb
               basis-library/libs/basis-1997 basis-1997.mlb
               basis-library/libs/basis-2002 basis-2002.mlb
               basis-library/libs/basis-extra basis-extra.mlb
               basis-library/libs/basis-extra/top-level basis-funs.sml
                        basis-sigs.sml basis.sig basis.sml top-level.sml
  Removed:     basis-library basis-2002-strict.mlb
               basis-library/libs build.mlb
               basis-library/libs/basis-none/top-level suffix.sml
  Log:
  MAIL reorganized Basis Library .mlbs
  
  Reorganized the Basis Library implementation files so that
  - $(MLTON_ROOT)/basis/basis{-2002}.mlb:
    Corresponds to strict adherence to the Basis Library specification
  - $(MLTON_ROOT)/basis/basis-1997.mlb:
    Corresponds to strict adherence to the 1997 Basis Library specification;
    or, at least without extra signatures and structures below.
  - $(MLTON_ROOT)/basis/mlton.mlb:
    Provides MLTON{_*} signatures and MLton structure.
  - $(MLTON_ROOT)/basis/sml-nj.mlb:
    Provides SML_OF_NJ signature and SMLofNJ structure.
  - $(MLTON_ROOT)/basis/unsafe.mlb:
    Provides UNSAFE signature and Unsafe structure.
  
  For backwards compatibility, when compiling a .sml or .cm file, the
  implicit MLBs BasDec looks like:
    local
      $(MLTON_ROOT)/basis/<<!Control.basisLibrary>>.mlb
      $(MLTON_ROOT)/basis/mlton.mlb
      $(MLTON_ROOT)/basis/sml-nj.mlb
      $(MLTON_ROOT)/basis/basis.mlb
    in
      z.sml
    end
  
  There is one minor semantic change; compiling with -basis 1997 does
  not provide the Primitive structure.  Hopefully no on was using it,
  but it can be easily exported.
  
  In light of the above, I've dropped compiler support for
  -basis 2002-strict, and removed
  $(MLTON_ROOT)/basis/basis-2002-strict.mlb.  I haven't nuked
  /basis-library/libs/basis-2002-strict just yet, but there is no longer
  a need for it.  On the other hand, I've kept support for -basis none
  and $(MLTON_ROOT)/basis/basis-none.mlb, although I think that
  $(MLTON_ROOT)/basis/pervasive.mlb is a better choice.

Revision  Changes    Path
1.118     +1 -1      mlton/Makefile

Index: Makefile
===================================================================
RCS file: /cvsroot/mlton/mlton/Makefile,v
retrieving revision 1.117
retrieving revision 1.118
diff -u -r1.117 -r1.118
--- Makefile	3 Aug 2004 21:22:12 -0000	1.117
+++ Makefile	5 Aug 2004 00:36:45 -0000	1.118
@@ -248,7 +248,7 @@
 	@echo 'Type checking basis.'
 	$(MLTON) -disable-ann deadCode \
 		-stop tc \
-		$(LIB)/sml/basis/basis.mlb \
+		'$$(MLTON_ROOT)/basis/libs/all.mlb' \
 		>/dev/null
 
 .PHONY: world-no-check



1.5       +2 -19     mlton/basis-library/README

Index: README
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/README,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- README	10 Dec 2003 17:38:06 -0000	1.4
+++ README	5 Aug 2004 00:36:46 -0000	1.5
@@ -3,26 +3,9 @@
 corresponding modules are grouped in the basis library documentation.
 All other implementation files are in the misc/ and libs/ directories.
 
-The basis is constructed in two steps.  First, all of the files in
-libs/build are concatenated together and evaluated to produce an
-environment E.  Then, depending on compile time options, all of the
-files in libs/basis-*/bind evaluated in the environment E to produce a
-new environment E', which is the top-level environment.
+The basis is constructed using the ML Basis system.
 
-Another way to view it is that every program is prefixed by the
-following program.
-
-local
-  <concatenate files in libs/build>
-in
-  <concatenate files in libs/basis-*/bind>
-end
-
-This is not strictly accurate because some of the files are not
-Standard ML (see below) and because Standard ML does not allow local
-functor or signature declarations.
-
-Other than bind-basis and build-basis, there are several special files:
+There are several special files that make use of non-SML extensions.
 
 misc/primitive.sml
 posix/primitve.sml



1.3       +2 -1      mlton/basis-library/basis-1997.mlb

Index: basis-1997.mlb
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/basis-1997.mlb,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- basis-1997.mlb	30 Jul 2004 19:07:57 -0000	1.2
+++ basis-1997.mlb	5 Aug 2004 00:36:46 -0000	1.3
@@ -5,7 +5,8 @@
    warnUnused true, forceUsed
 in
    local
-      ann forceUsed in libs/build.mlb end
+      basis-2002.mlb
+      libs/basis-1997/basis-1997.mlb
    in
       libs/basis-1997/top-level/basis-funs.sml
       libs/basis-1997/top-level/basis-sigs.sml



1.3       +2 -1      mlton/basis-library/basis-2002.mlb

Index: basis-2002.mlb
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/basis-2002.mlb,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- basis-2002.mlb	30 Jul 2004 19:07:57 -0000	1.2
+++ basis-2002.mlb	5 Aug 2004 00:36:46 -0000	1.3
@@ -5,7 +5,8 @@
    warnUnused true, forceUsed
 in
    local
-      libs/build.mlb
+      libs/basis-extra/basis-extra.mlb
+      libs/basis-2002/basis-2002.mlb
    in
       libs/basis-2002/top-level/basis-funs.sml
       libs/basis-2002/top-level/basis-sigs.sml



1.3       +3 -1      mlton/basis-library/basis-none.mlb

Index: basis-none.mlb
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/basis-none.mlb,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- basis-none.mlb	30 Jul 2004 19:07:57 -0000	1.2
+++ basis-none.mlb	5 Aug 2004 00:36:46 -0000	1.3
@@ -5,7 +5,9 @@
    warnUnused true, forceUsed
 in
    local
-      ann forceUsed in libs/build.mlb end
+      libs/basis-extra/basis-extra.mlb
+      libs/basis-none/top-level/basis.sig
+      libs/basis-none/top-level/basis.sml
    in
       libs/basis-none/top-level/top-level.sml
       libs/basis-none/top-level/infixes.sml



1.2       +2 -1      mlton/basis-library/equal.mlb

Index: equal.mlb
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/equal.mlb,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- equal.mlb	30 Jul 2004 19:07:57 -0000	1.1
+++ equal.mlb	5 Aug 2004 00:36:46 -0000	1.2
@@ -5,7 +5,8 @@
    warnUnused true, forceUsed
 in
    local
-      libs/build.mlb
+      libs/basis-2002/basis-2002.mlb
+      basis-2002.mlb
       libs/basis-2002/top-level/basis-equal.sig
    in
       libs/basis-2002/top-level/pervasive-equal.sml



1.2       +1 -5      mlton/basis-library/infixes.mlb

Index: infixes.mlb
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/infixes.mlb,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- infixes.mlb	30 Jul 2004 19:07:57 -0000	1.1
+++ infixes.mlb	5 Aug 2004 00:36:46 -0000	1.2
@@ -4,9 +4,5 @@
    warnMatch true,
    warnUnused true, forceUsed
 in
-   local 
-      basis-2002.mlb 
-   in
-      libs/basis-2002/top-level/infixes.sml
-   end
+   libs/basis-2002/top-level/infixes.sml
 end



1.2       +2 -1      mlton/basis-library/pervasive-exns.mlb

Index: pervasive-exns.mlb
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/pervasive-exns.mlb,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- pervasive-exns.mlb	30 Jul 2004 19:07:57 -0000	1.1
+++ pervasive-exns.mlb	5 Aug 2004 00:36:46 -0000	1.2
@@ -5,7 +5,8 @@
    warnUnused true, forceUsed
 in
    local
-      libs/build.mlb
+      libs/basis-2002/basis-2002.mlb
+      basis-2002.mlb
       libs/basis-2002/top-level/basis-exns.sig
    in
       libs/basis-2002/top-level/pervasive-exns.sml



1.2       +3 -1      mlton/basis-library/pervasive-types.mlb

Index: pervasive-types.mlb
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/pervasive-types.mlb,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- pervasive-types.mlb	30 Jul 2004 19:07:57 -0000	1.1
+++ pervasive-types.mlb	5 Aug 2004 00:36:46 -0000	1.2
@@ -5,9 +5,11 @@
    warnUnused true, forceUsed
 in
    local
-      libs/build.mlb
+      libs/basis-2002/basis-2002.mlb
+      basis-2002.mlb
       libs/basis-2002/top-level/basis-types.sig
    in
+
       libs/basis-2002/top-level/pervasive-types.sml
     end
 end



1.2       +2 -1      mlton/basis-library/pervasive-vals.mlb

Index: pervasive-vals.mlb
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/pervasive-vals.mlb,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- pervasive-vals.mlb	30 Jul 2004 19:07:57 -0000	1.1
+++ pervasive-vals.mlb	5 Aug 2004 00:36:46 -0000	1.2
@@ -5,7 +5,8 @@
    warnUnused true, forceUsed
 in
    local
-      libs/build.mlb
+      libs/basis-2002/basis-2002.mlb
+      basis-2002.mlb
       libs/basis-2002/top-level/basis-vals.sig
    in
       libs/basis-2002/top-level/pervasive-vals.sml



1.1                  mlton/basis-library/mlton.mlb

Index: mlton.mlb
===================================================================
ann  
   deadCode true,
   sequenceUnit true,
   warnMatch true,
   warnUnused true, forceUsed
in
   local
      libs/basis-extra/basis-extra.mlb
   in
      signature MLTON
      signature MLTON_ARRAY
      signature MLTON_BIN_IO
      signature MLTON_CONT
      signature MLTON_EXN
      signature MLTON_FINALIZABLE
      signature MLTON_GC
      signature MLTON_INT_INF
      signature MLTON_IO
      signature MLTON_ITIMER
      signature MLTON_PLATFORM
      signature MLTON_POINTER
      signature MLTON_PROC_ENV
      signature MLTON_PROCESS
      signature MLTON_PROFILE
      signature MLTON_RANDOM
      signature MLTON_RLIMIT
      signature MLTON_RUSAGE
      signature MLTON_SIGNAL
      signature MLTON_SOCKET
      signature MLTON_SYSLOG
      signature MLTON_TEXT_IO
      signature MLTON_THREAD
      signature MLTON_VECTOR
      signature MLTON_WEAK
      signature MLTON_WORD
      signature MLTON_WORLD
   
      structure MLton
   end
end



1.1                  mlton/basis-library/sml-nj.mlb

Index: sml-nj.mlb
===================================================================
ann  
   deadCode true,
   sequenceUnit true,
   warnMatch true,
   warnUnused true, forceUsed
in
   local
      libs/basis-extra/basis-extra.mlb
   in
      signature SML_OF_NJ
      structure SMLofNJ
   end
end



1.1                  mlton/basis-library/unsafe.mlb

Index: unsafe.mlb
===================================================================
ann  
   deadCode true,
   sequenceUnit true,
   warnMatch true,
   warnUnused true, forceUsed
in
   local
      libs/basis-extra/basis-extra.mlb
   in
      signature UNSAFE
      structure Unsafe
   end
end



1.18      +0 -5      mlton/basis-library/arrays-and-vectors/sequence.fun

Index: sequence.fun
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/arrays-and-vectors/sequence.fun,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- sequence.fun	16 Feb 2004 22:43:18 -0000	1.17
+++ sequence.fun	5 Aug 2004 00:36:47 -0000	1.18
@@ -463,10 +463,8 @@
 	fun findi p = make (Slice.findi p)
 	fun find p = make (Slice.find p)
 	fun existsi p = make (Slice.existsi p)
-	val _ = existsi (* quell unused variable warning *)
 	fun exists p = make (Slice.exists p)
 	fun alli p = make (Slice.alli p)
-	val _ = alli (* quell unused variable warning *)
 	fun all p = make (Slice.all p)
 	fun collate cmp = make2 (Slice.collate cmp)
 	fun concatWith sep seqs = Slice.concatWith sep (List.map Slice.full seqs)
@@ -477,11 +475,8 @@
 	fun tokens f seq = List.map Slice.sequence (make (Slice.tokens f) seq)
 	fun fields f seq = List.map Slice.sequence (make (Slice.fields f) seq)
 	fun createi tabulate f seq = make (Slice.createi tabulate f) seq
-	val _ = createi (* quell unused variable warning *)
 	fun create tabulate f seq = make (Slice.create tabulate f) seq
-	val _ = create (* quell unused variable warning *)
 	fun duplicate seq = make Slice.sequence seq
-	val _ = duplicate (* quell unused variable warning *)
 	fun toList seq = make Slice.toList seq
       end
     



1.7       +0 -28     mlton/basis-library/general/sml90.sml

Index: sml90.sml
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/general/sml90.sml,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- sml90.sml	18 Mar 2004 00:32:44 -0000	1.6
+++ sml90.sml	5 Aug 2004 00:36:47 -0000	1.7
@@ -67,31 +67,3 @@
 	 handle IO.Io _ => raise Io "Output stream is closed"
       val close_out = TextIO.closeOut
    end
-
-(* The following is to quell unused variable warnings. *)
-local
-   open SML90
-   val _ = (Abs, Diff, Exp, Floor, Interrupt, Io "", Ln, Mod, Neg, Ord, Prod,
-	    Quot, Sqrt, Sum)
-   val _ = arctan
-   val _ = chr
-   val _ = close_in
-   val _ = close_out
-   val _ = cos
-   val _ = end_of_stream
-   val _ = exp
-   val _ = explode
-   val _ = implode
-   val _ = input
-   val _ = ln
-   val _ = lookahead
-   val _ = open_in
-   val _ = open_out
-   val _ = ord
-   val _ = output
-   val _ = sin
-   val _ = sqrt
-   val _ = std_in: instream
-   val _ = std_out: outstream
-in
-end



1.1                  mlton/basis-library/libs/all.mlb

Index: all.mlb
===================================================================
local
  ../basis.mlb
  ../pervasive.mlb
  ../basis-2002.mlb
  ../basis-1997.mlb
  ../basis-none.mlb
  ../mlton.mlb
  ../sml-nj.mlb
  ../unsafe.mlb
in

end


1.1                  mlton/basis-library/libs/basis-1997/basis-1997.mlb

Index: basis-1997.mlb
===================================================================
ann  
   deadCode true,
   sequenceUnit true,
   warnMatch true,
   warnUnused true, forceUsed
in
   local
      ../basis-2002/basis-2002.mlb
      ../../basis-2002.mlb
      local
        ../basis-extra/basis-extra.mlb
      in
        signature SML90
        structure SML90
      end

      arrays-and-vectors/vector.sig
      arrays-and-vectors/array.sig
      arrays-and-vectors/vector-array-convert.fun
      arrays-and-vectors/mono-vector.sig
      arrays-and-vectors/mono-array.sig
      arrays-and-vectors/mono-array2.sig
      arrays-and-vectors/mono-vector-array-array2-convert.fun
      integer/word.sig
      text/string.sig
      text/substring.sig
      text/text-convert.fun
      real/IEEE-real.sig
      real/IEEE-real-convert.fun
      real/real.sig
      real/real-convert.fun
      posix/flags.sig
      posix/flags-convert.fun
      posix/process.sig
      posix/process-convert.fun
      posix/file-sys.sig
      posix/file-sys-convert.fun
      posix/io.sig
      posix/io-convert.fun
      posix/tty.sig
      posix/tty-convert.fun
      posix/posix.sig
      posix/posix-convert.fun
      system/timer.sig
      system/timer-convert.fun
      system/file-sys.sig
      system/file-sys-convert.fun
      system/path.sig
      system/path-convert.fun
      system/process.sig
      system/process-convert.fun
      system/os.sig
      system/os-convert.fun
      system/unix.sig
      system/unix-convert.fun
      io/io.sig
      io/io-convert.fun
      io/stream-io.sig
      io/text-stream-io.sig
      io/text-io.sig
      io/text-io-convert.fun
      io/bin-stream-io.sig
      io/bin-io.sig
      io/bin-io-convert.fun

      top-level/basis.sig
      top-level/basis.sml
   in
      signature MONO_ARRAY_1997
      signature MONO_VECTOR_1997
      signature REAL_1997
      signature STRING_1997
      signature SUBSTRING_1997
      signature WORD_1997
      signature ARRAY_1997
      signature IEEE_REAL_1997
      signature IO_1997
      signature OS_1997
      signature OS_FILE_SYS_1997
      signature OS_PATH_1997
      signature OS_PROCESS_1997
      signature SML90
      signature TIMER_1997
      signature VECTOR_1997
      signature MONO_ARRAY2_1997
      signature POSIX_FLAGS_1997
      signature POSIX_1997
      signature POSIX_PROCESS_1997
      signature POSIX_FILE_SYS_1997
      signature POSIX_IO_1997
      signature POSIX_TTY_1997
      signature UNIX_1997

      structure Basis1997
  end
end



1.3       +0 -5      mlton/basis-library/libs/basis-1997/top-level/basis-funs.sml

Index: basis-funs.sml
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/libs/basis-1997/top-level/basis-funs.sml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- basis-funs.sml	24 Nov 2002 01:19:38 -0000	1.2
+++ basis-funs.sml	5 Aug 2004 00:36:47 -0000	1.3
@@ -1,8 +1,3 @@
 (* Required functors *)
 
 (* Optional functors *)
-(*
-functor PrimIO (S: PRIM_IO_ARG) = PrimIO (S)
-functor StreamIO (S: STREAM_IO_ARG) = StreamIO (S)
-functor ImperativeIO (S: IMPERATIVE_IO_ARG) = ImperativeIO (S)
-*)
\ No newline at end of file



1.7       +0 -73     mlton/basis-library/libs/basis-1997/top-level/basis.sml

Index: basis.sml
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/libs/basis-1997/top-level/basis.sml,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- basis.sml	20 Feb 2004 18:13:54 -0000	1.6
+++ basis.sml	5 Aug 2004 00:36:47 -0000	1.7
@@ -98,76 +98,3 @@
 
       structure Unix = UnixConvert (structure Unix = Unix)
    end
-
-
-(* quell unused warning *)
-local
-   open Basis1997
-   open Array
-      Array2
-      BinIO
-      Bool
-      BoolArray
-      BoolArray2
-      BoolVector
-      Byte
-      Char
-      CharArray
-      CharArray2
-      CharVector
-      CommandLine
-      Date
-      FixedInt
-      General
-      IEEEReal
-      IO
-      Int
-      Int32
-      Int32Array
-      Int32Array2
-      Int32Vector
-      IntArray
-      IntArray2
-      IntInf
-      IntVector
-      LargeInt
-      LargeReal
-      LargeWord
-      List
-      ListPair
-      Math
-      OS
-      Option
-      Pack32Big
-      Pack32Little
-      PackReal64Little
-      PackRealLittle
-      Position
-      Posix
-      Real
-      Real64
-      Real64Array
-      Real64Array2
-      Real64Vector
-      RealArray
-      RealArray2
-      RealVector
-      SML90
-      String
-      StringCvt
-      Substring
-      SysWord
-      TextIO
-      Time
-      Timer
-      Unix
-      Vector
-      Word
-      Word32
-      Word64
-      Word8
-      Word8Array
-      Word8Array2
-      Word8Vector
-in
-end



1.7       +0 -17     mlton/basis-library/libs/basis-1997/top-level/top-level.sml

Index: top-level.sml
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/libs/basis-1997/top-level/top-level.sml,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- top-level.sml	30 Jul 2004 19:07:57 -0000	1.6
+++ top-level.sml	5 Aug 2004 00:36:47 -0000	1.7
@@ -1,19 +1,2 @@
 
-(* Non-standard signatures *)
-signature MLTON = MLTON
-signature SML_OF_NJ = SML_OF_NJ
-signature UNSAFE = UNSAFE
-
-(* Non-standard structures *)
-structure Primitive = Primitive
-local
-   open Basis2002
-in
-   structure MLton = MLton
-   structure SMLofNJ = SMLofNJ
-   structure Unsafe = Unsafe
-end
-
 open Basis1997
-
-_basis_done MLtonFFI



1.1                  mlton/basis-library/libs/basis-2002/basis-2002.mlb

Index: basis-2002.mlb
===================================================================
ann  
   deadCode true,
   sequenceUnit true,
   warnMatch true,
   warnUnused true, forceUsed
in
   local
      ../basis-extra/basis-extra.mlb
      top-level/basis.sig
      top-level/basis.sml
   in
      structure Basis2002
    end
end



1.49      +6 -163    mlton/basis-library/libs/basis-2002/top-level/basis.sig

Index: basis.sig
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/libs/basis-2002/top-level/basis.sig,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- basis.sig	30 Jul 2004 19:07:57 -0000	1.48
+++ basis.sig	5 Aug 2004 00:36:48 -0000	1.49
@@ -2,14 +2,14 @@
    sig
       (* Top-level types *)
       eqtype 'a array
-      datatype bool = datatype bool
+      datatype bool = datatype BasisExtra.bool
       eqtype char
       type exn
       eqtype int 
       datatype 'a option = NONE | SOME of 'a 
       datatype order = LESS | EQUAL | GREATER 
-      datatype list = datatype list
-      datatype ref = datatype ref
+      datatype list = datatype BasisExtra.list
+      datatype ref = datatype BasisExtra.ref
       type real
       eqtype string
       type substring 
@@ -32,6 +32,9 @@
       exception Subscript
  
       (* Top-level values *)
+      val = : ''a * ''a -> bool
+      val <> : ''a * ''a -> bool
+	
       val ! : 'a ref -> 'a
       val := : 'a ref * 'a -> unit
       val @ : ('a list * 'a list) -> 'a list
@@ -76,9 +79,6 @@
       val valOf : 'a option -> 'a 
       val vector : 'a list -> 'a vector
 
-      val = : ''a * ''a -> bool
-      val <> : ''a * ''a -> bool
-	
       (* Required structures *)
       structure Array : ARRAY	
       structure ArraySlice : ARRAY_SLICE	
@@ -308,22 +308,6 @@
       structure Word64ArraySlice : MONO_ARRAY_SLICE
       structure Word64Vector : MONO_VECTOR
       structure Word64VectorSlice : MONO_VECTOR_SLICE
-
-      (* Non-standard structures *)
-      structure MLton: MLTON
-      structure SMLofNJ: SML_OF_NJ
-      structure Unsafe: UNSAFE
-
-      sharing type MLton.IntInf.t = IntInf.int
-      sharing type MLton.Process.pid = Posix.Process.pid
-      sharing type MLton.Signal.t = Posix.Signal.signal
-      sharing type MLton.Word.t = Word.word
-      sharing type MLton.Word8.t = Word8.word
-      sharing Unsafe.CharArray = CharArray
-      sharing Unsafe.CharVector = CharVector
-      sharing Unsafe.Real64Array = Real64Array
-      sharing Unsafe.Word8Array = Word8Array
-      sharing Unsafe.Word8Vector = Word8Vector
 	 
       (* ************************************************** *)
       (* ************************************************** *)
@@ -612,144 +596,3 @@
       sharing type Word64Array2.elem = Word64.word
       sharing type Word64Array2.vector = Word64Vector.vector
    end
-   (* bool is already defined as bool and so cannot be shared.
-    * So, we where these to get the needed sharing.
-    *)
-   where type BoolArray.elem = bool
-   where type BoolArray2.elem = bool
-   where type BoolArraySlice.elem = bool
-   where type BoolVector.elem = bool
-   where type BoolVectorSlice.elem = bool
-
-   (* Top-level types.  These appear free in basis signatures and hence must be
-    * the same in the basis as at the top level.
-    *)
-   where type 'a array = 'a array
-   where type 'a option = 'a option
-   where type 'a vector = 'a vector
-   where type char = char
-   where type exn = exn
-   where type order = order
-   where type real = real
-   where type string = string
-   where type substring = substring
-   where type unit = unit
-
-   (* Types referenced in signatures by structure name *)
-(*
-   where type 'a Array.array = 'a Array.array
-*)
-   where type 'a ArraySlice.slice = 'a ArraySlice.slice
-   where type BinIO.instream = BinIO.instream
-   where type BinIO.outstream = BinIO.outstream
-   where type BinPrimIO.reader = BinPrimIO.reader
-   where type BinPrimIO.writer = BinPrimIO.writer
-   where type FixedInt.int = FixedInt.int
-   where type IO.buffer_mode = IO.buffer_mode
-   where type LargeInt.int = LargeInt.int
-   where type LargeReal.real = LargeReal.real
-   where type LargeWord.word = LargeWord.word
-   where type IEEEReal.real_order = IEEEReal.real_order
-   where type IEEEReal.float_class = IEEEReal.float_class
-   where type IEEEReal.rounding_mode = IEEEReal.rounding_mode
-   where type NetHostDB.in_addr = NetHostDB.in_addr
-   where type NetHostDB.addr_family = NetHostDB.addr_family
-   where type OS.IO.iodesc = OS.IO.iodesc
-   where type OS.Process.status = OS.Process.status (* UNIX *)
-   where type Position.int = Position.int
-   where type Posix.IO.file_desc = Posix.IO.file_desc
-   where type Posix.Signal.signal = Posix.Signal.signal
-   where type Socket.dgram = Socket.dgram
-   where type ('a, 'b) Socket.sock = ('a, 'b) Socket.sock
-   where type 'a Socket.sock_addr = 'a Socket.sock_addr
-   where type Socket.SOCK.sock_type = Socket.SOCK.sock_type (* GENERIC_SOCK *)
-   where type 'a Socket.stream = 'a Socket.stream
-   where type StringCvt.radix = StringCvt.radix
-   where type StringCvt.realfmt = StringCvt.realfmt
-(*
-   where type ('a, 'b) StringCvt.reader = ('a, 'b) StringCvt.reader
-*)
-   where type SysWord.word = SysWord.word
-   where type TextIO.instream = TextIO.instream
-   where type TextIO.outstream = TextIO.outstream
-   where type TextPrimIO.reader = TextPrimIO.reader
-   where type TextPrimIO.writer = TextPrimIO.writer
-   where type Time.time = Time.time
-(*
-   where type 'a Vector.vector = 'a Vector.vector
-*)
-   where type 'a VectorSlice.slice = 'a VectorSlice.slice
-   where type Word8Array.array = Word8Array.array
-   where type Word8ArraySlice.slice = Word8ArraySlice.slice
-   where type Word8ArraySlice.vector_slice = Word8ArraySlice.vector_slice
-   where type Word8Vector.vector = Word8Vector.vector
-
-   (* Types that must be exposed because constants denote them. *)
-   where type Int2.int = Int2.int
-   where type Int3.int = Int3.int
-   where type Int4.int = Int4.int
-   where type Int5.int = Int5.int
-   where type Int6.int = Int6.int
-   where type Int7.int = Int7.int
-   where type Int8.int = Int8.int
-   where type Int9.int = Int9.int
-   where type Int10.int = Int10.int
-   where type Int11.int = Int11.int
-   where type Int12.int = Int12.int
-   where type Int13.int = Int13.int
-   where type Int14.int = Int14.int
-   where type Int15.int = Int15.int
-   where type Int16.int = Int16.int
-   where type Int17.int = Int17.int
-   where type Int18.int = Int18.int
-   where type Int19.int = Int19.int
-   where type Int20.int = Int20.int
-   where type Int21.int = Int21.int
-   where type Int22.int = Int22.int
-   where type Int23.int = Int23.int
-   where type Int24.int = Int24.int
-   where type Int25.int = Int25.int
-   where type Int26.int = Int26.int
-   where type Int27.int = Int27.int
-   where type Int28.int = Int28.int
-   where type Int29.int = Int29.int
-   where type Int30.int = Int30.int
-   where type Int31.int = Int31.int
-   where type Int32.int = Int32.int
-   where type Int64.int = Int64.int
-   where type IntInf.int = IntInf.int
-   where type Real32.real = Real32.real
-   where type Word2.word = Word2.word
-   where type Word3.word = Word3.word
-   where type Word4.word = Word4.word
-   where type Word5.word = Word5.word
-   where type Word6.word = Word6.word
-   where type Word7.word = Word7.word
-   where type Word8.word = Word8.word
-   where type Word9.word = Word9.word
-   where type Word10.word = Word10.word
-   where type Word11.word = Word11.word
-   where type Word12.word = Word12.word
-   where type Word13.word = Word13.word
-   where type Word14.word = Word14.word
-   where type Word15.word = Word15.word
-   where type Word16.word = Word16.word
-   where type Word17.word = Word17.word
-   where type Word18.word = Word18.word
-   where type Word19.word = Word19.word
-   where type Word20.word = Word20.word
-   where type Word21.word = Word21.word
-   where type Word22.word = Word22.word
-   where type Word23.word = Word23.word
-   where type Word24.word = Word24.word
-   where type Word25.word = Word25.word
-   where type Word26.word = Word26.word
-   where type Word27.word = Word27.word
-   where type Word28.word = Word28.word
-   where type Word29.word = Word29.word
-   where type Word30.word = Word30.word
-   where type Word31.word = Word31.word
-   where type Word32.word = Word32.word
-   where type Word64.word = Word64.word
-
-   where type 'a MLton.Thread.t = 'a MLton.Thread.t



1.24      +1 -259    mlton/basis-library/libs/basis-2002/top-level/basis.sml

Index: basis.sml
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/libs/basis-2002/top-level/basis.sml,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- basis.sml	30 Jul 2004 19:07:57 -0000	1.23
+++ basis.sml	5 Aug 2004 00:36:48 -0000	1.24
@@ -1,259 +1 @@
-structure Basis2002:> BASIS_2002 = 
-   struct
-      (* Required structures *)
-      structure Array = Array
-      structure ArraySlice = ArraySlice
-      structure BinIO = BinIO
-      structure BinPrimIO = BinPrimIO
-      structure Bool = Bool
-      structure Byte = Byte
-      structure Char = Char
-      structure CharArray = CharArray
-      structure CharArraySlice = CharArraySlice
-      structure CharVector = CharVector
-      structure CharVectorSlice = CharVectorSlice
-      structure CommandLine = CommandLine
-      structure Date = Date
-      structure General = General
-      structure IEEEReal = IEEEReal
-      structure IO = IO
-      structure Int = Int
-      structure LargeInt = LargeInt
-      structure LargeReal = LargeReal
-      structure LargeWord = LargeWord
-      structure List = List
-      structure ListPair = ListPair
-      structure OS = OS
-      structure Option = Option
-      structure Position = Position
-      structure Real = Real
-      structure String = String
-      structure StringCvt = StringCvt
-      structure Substring = Substring
-      structure Text = Text
-      structure TextIO = TextIO
-      structure TextPrimIO = TextPrimIO
-      structure Time = Time
-      structure Timer = Timer
-      structure Vector = Vector
-      structure VectorSlice = VectorSlice
-      structure Word = Word
-      structure Word8 = Word8
-      structure Word8Array = Word8Array
-      structure Word8Array2 = Word8Array2
-      structure Word8ArraySlice = Word8ArraySlice
-      structure Word8Vector = Word8Vector
-      structure Word8VectorSlice = Word8VectorSlice
-
-      (* Optional structures *)
-      structure Array2 = Array2
-      structure BoolArray = BoolArray
-      structure BoolArray2 = BoolArray2
-      structure BoolArraySlice = BoolArraySlice
-      structure BoolVector = BoolVector
-      structure BoolVectorSlice = BoolVectorSlice
-      structure CharArray2 = CharArray2
-      structure FixedInt = FixedInt
-      structure GenericSock = GenericSock
-      structure INetSock = INetSock
-      structure Int16 = Int16
-      structure Int16Array = Int16Array
-      structure Int16Array2 = Int16Array2
-      structure Int16ArraySlice = Int16ArraySlice
-      structure Int16Vector = Int16Vector
-      structure Int16VectorSlice = Int16VectorSlice
-      structure Int2 = Int2
-      structure Int3 = Int3
-      structure Int4 = Int4
-      structure Int5 = Int5
-      structure Int6 = Int6
-      structure Int7 = Int7
-      structure Int8 = Int8
-      structure Int9 = Int9
-      structure Int10 = Int10
-      structure Int11 = Int11
-      structure Int12 = Int12
-      structure Int13 = Int13
-      structure Int14 = Int14
-      structure Int15 = Int15
-      structure Int16 = Int16
-      structure Int17 = Int17
-      structure Int18 = Int18
-      structure Int19 = Int19
-      structure Int20 = Int20
-      structure Int21 = Int21
-      structure Int22 = Int22
-      structure Int23 = Int23
-      structure Int24 = Int24
-      structure Int25 = Int25
-      structure Int26 = Int26
-      structure Int27 = Int27
-      structure Int28 = Int28
-      structure Int29 = Int29
-      structure Int30 = Int30
-      structure Int31 = Int31
-      structure Int32 = Int32
-      structure Int32Array = Int32Array
-      structure Int32Array2 = Int32Array2
-      structure Int32ArraySlice = Int32ArraySlice
-      structure Int32Vector = Int32Vector
-      structure Int32VectorSlice = Int32VectorSlice
-      structure Int64 = Int64
-      structure Int64Array = Int64Array
-      structure Int64Array2 = Int64Array2
-      structure Int64ArraySlice = Int64ArraySlice
-      structure Int64Vector = Int64Vector
-      structure Int64VectorSlice = Int64VectorSlice
-      structure Int8 = Int8
-      structure Int8Array = Int8Array
-      structure Int8Array2 = Int8Array2
-      structure Int8ArraySlice = Int8ArraySlice
-      structure Int8Vector = Int8Vector
-      structure Int8VectorSlice = Int8VectorSlice
-      structure IntArray = IntArray
-      structure IntArray2 = IntArray2
-      structure IntArraySlice = IntArraySlice
-      structure IntInf = IntInf
-      structure IntVector = IntVector
-      structure IntVectorSlice = IntVectorSlice
-      structure LargeIntArray = LargeIntArray
-      structure LargeIntArray2 = LargeIntArray2
-      structure LargeIntArraySlice = LargeIntArraySlice
-      structure LargeIntVector = LargeIntVector
-      structure LargeIntVectorSlice = LargeIntVectorSlice
-      structure LargeRealArray = LargeRealArray
-      structure LargeRealArray2 = LargeRealArray2
-      structure LargeRealArraySlice = LargeRealArraySlice
-      structure LargeRealVector = LargeRealVector
-      structure LargeRealVectorSlice = LargeRealVectorSlice
-      structure LargeWordArray = LargeWordArray
-      structure LargeWordArray2 = LargeWordArray2
-      structure LargeWordArraySlice = LargeWordArraySlice
-      structure LargeWordVector = LargeWordVector
-      structure LargeWordVectorSlice = LargeWordVectorSlice
-      structure NetHostDB = NetHostDB
-      structure NetProtDB = NetProtDB
-      structure NetServDB = NetServDB
-      structure PackReal32Big = PackReal32Big
-      structure PackReal32Little = PackReal32Little
-      structure PackReal64Big = PackReal64Big
-      structure PackReal64Little = PackReal64Little
-      structure PackRealBig = PackRealBig
-      structure PackRealLittle = PackRealLittle
-      structure PackWord32Big = PackWord32Big
-      structure PackWord32Little = PackWord32Little
-      structure Posix = Posix
-      structure Real32 = Real32
-      structure Real32Array = Real32Array
-      structure Real32Array2 = Real32Array2
-      structure Real32ArraySlice = Real32ArraySlice
-      structure Real32Vector = Real32Vector
-      structure Real32VectorSlice = Real32VectorSlice
-      structure Real64 = Real64
-      structure Real64Array = Real64Array
-      structure Real64Array2 = Real64Array2
-      structure Real64ArraySlice = Real64ArraySlice
-      structure Real64Vector = Real64Vector
-      structure Real64VectorSlice = Real64VectorSlice
-      structure RealArray = RealArray
-      structure RealArray2 = RealArray2
-      structure RealArraySlice = RealArraySlice
-      structure RealVector = RealVector
-      structure RealVectorSlice = RealVectorSlice
-      structure Socket = Socket
-      structure SysWord = SysWord
-      structure Unix = Unix
-      structure UnixSock = UnixSock
-(*
-      structure WideChar = WideChar
-      structure WideCharArray = WideCharArray
-      structure WideCharArray2 = WideCharArray2
-      structure WideCharArraySlice = WideCharArraySlice
-      structure WideCharVector = WideCharVector
-      structure WideCharVectorSlice = WideCharVectorSlice
-      structure WideString = WideString
-      structure WideSubstring = WideSubstring
-      structure WideText = WideText
-      structure WideTextPrimIO = WideTextPrimIO
-*)
-(*
-      structure Windows = Windows
-*)
-      structure Word2 = Word2
-      structure Word3 = Word3
-      structure Word4 = Word4
-      structure Word5 = Word5
-      structure Word6 = Word6
-      structure Word7 = Word7
-      structure Word8 = Word8
-      structure Word9 = Word9
-      structure Word10 = Word10
-      structure Word11 = Word11
-      structure Word12 = Word12
-      structure Word13 = Word13
-      structure Word14 = Word14
-      structure Word15 = Word15
-      structure Word16 = Word16
-      structure Word17 = Word17
-      structure Word18 = Word18
-      structure Word19 = Word19
-      structure Word20 = Word20
-      structure Word21 = Word21
-      structure Word22 = Word22
-      structure Word23 = Word23
-      structure Word24 = Word24
-      structure Word25 = Word25
-      structure Word26 = Word26
-      structure Word27 = Word27
-      structure Word28 = Word28
-      structure Word29 = Word29
-      structure Word30 = Word30
-      structure Word31 = Word31
-      structure Word32 = Word32
-      structure Word64 = Word64
-      structure WordArray = WordArray
-      structure WordArray2 = WordArray2
-      structure WordArraySlice = WordArraySlice
-      structure WordVector = WordVector
-      structure WordVectorSlice = WordVectorSlice
-      structure Word16 = Word16
-      structure Word16Array = Word16Array
-      structure Word16Array2 = Word16Array2
-      structure Word16ArraySlice = Word16ArraySlice
-      structure Word16Vector = Word16Vector
-      structure Word16VectorSlice = Word16VectorSlice
-      structure Word32Array = Word32Array
-      structure Word32Array2 = Word32Array2
-      structure Word32ArraySlice = Word32ArraySlice
-      structure Word32Vector = Word32Vector
-      structure Word32VectorSlice = Word32VectorSlice
-      structure Word64Array = Word64Array
-      structure Word64Array2 = Word64Array2
-      structure Word64ArraySlice = Word64ArraySlice
-      structure Word64Vector = Word64Vector
-      structure Word64VectorSlice = Word64VectorSlice
-
-      structure MLton = MLton
-      structure SMLofNJ = SMLofNJ
-      structure Unsafe = Unsafe
-	 
-      open ArrayGlobal
-	   BoolGlobal
-	   CharGlobal
-	   IntGlobal
-	   GeneralGlobal
-	   ListGlobal
-	   OptionGlobal
-	   RealGlobal
-	   StringGlobal
-	   RealGlobal
-	   SubstringGlobal
-	   TextIOGlobal
-	   VectorGlobal
-	   WordGlobal
-      val real = real
-      val op = = op =
-      val op <> = op <>
-      val vector = vector
-      datatype ref = datatype ref
-   end
+structure Basis2002 : BASIS_2002 = BasisExtra



1.2       +1 -1      mlton/basis-library/libs/basis-2002/top-level/pervasive-exns.sml

Index: pervasive-exns.sml
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/libs/basis-2002/top-level/pervasive-exns.sml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- pervasive-exns.sml	30 Jul 2004 19:07:57 -0000	1.1
+++ pervasive-exns.sml	5 Aug 2004 00:36:48 -0000	1.2
@@ -1,5 +1,5 @@
 local
-   structure B = Basis2002 : BASIS_2002_EXNS
+   structure B : BASIS_2002_EXNS = Basis2002
 in
    open B
 end



1.2       +2 -2      mlton/basis-library/libs/basis-2002/top-level/pervasive-types.sml

Index: pervasive-types.sml
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/libs/basis-2002/top-level/pervasive-types.sml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- pervasive-types.sml	30 Jul 2004 19:07:57 -0000	1.1
+++ pervasive-types.sml	5 Aug 2004 00:36:48 -0000	1.2
@@ -1,5 +1,5 @@
 local
-   structure B = Basis2002 : BASIS_2002_TYPES
+   structure B : BASIS_2002_TYPES = Basis2002
 in
    open B
-end
\ No newline at end of file
+end



1.2       +1 -1      mlton/basis-library/libs/basis-2002/top-level/pervasive-vals.sml

Index: pervasive-vals.sml
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/libs/basis-2002/top-level/pervasive-vals.sml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- pervasive-vals.sml	30 Jul 2004 19:07:57 -0000	1.1
+++ pervasive-vals.sml	5 Aug 2004 00:36:48 -0000	1.2
@@ -1,5 +1,5 @@
 local
-   structure B = Basis2002 : BASIS_2002_VALS
+   structure B : BASIS_2002_VALS = Basis2002
 in
    open B
 end



1.14      +0 -34     mlton/basis-library/libs/basis-2002/top-level/top-level.sml

Index: top-level.sml
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/libs/basis-2002/top-level/top-level.sml,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- top-level.sml	30 Jul 2004 19:07:57 -0000	1.13
+++ top-level.sml	5 Aug 2004 00:36:48 -0000	1.14
@@ -6,37 +6,6 @@
  * Please see the file MLton-LICENSE for license information.
  *)
 
-(* Non-standard signatures *)
-signature MLTON = MLTON
-signature MLTON_ARRAY = MLTON_ARRAY
-signature MLTON_BIN_IO = MLTON_BIN_IO
-signature MLTON_CONT = MLTON_CONT
-signature MLTON_EXN = MLTON_EXN
-signature MLTON_FINALIZABLE = MLTON_FINALIZABLE
-signature MLTON_GC = MLTON_GC
-signature MLTON_INT_INF = MLTON_INT_INF
-signature MLTON_IO = MLTON_IO
-signature MLTON_ITIMER = MLTON_ITIMER
-signature MLTON_PLATFORM = MLTON_PLATFORM
-signature MLTON_POINTER = MLTON_POINTER
-signature MLTON_PROC_ENV = MLTON_PROC_ENV
-signature MLTON_PROCESS = MLTON_PROCESS
-signature MLTON_PROFILE = MLTON_PROFILE
-signature MLTON_RANDOM = MLTON_RANDOM
-signature MLTON_RLIMIT = MLTON_RLIMIT
-signature MLTON_RUSAGE = MLTON_RUSAGE
-signature MLTON_SIGNAL = MLTON_SIGNAL
-signature MLTON_SOCKET = MLTON_SOCKET
-signature MLTON_SYSLOG = MLTON_SYSLOG
-signature MLTON_TEXT_IO = MLTON_TEXT_IO
-signature MLTON_THREAD = MLTON_THREAD
-signature MLTON_VECTOR = MLTON_VECTOR
-signature MLTON_WEAK = MLTON_WEAK
-signature MLTON_WORD = MLTON_WORD
-signature MLTON_WORLD = MLTON_WORLD
-signature SML_OF_NJ = SML_OF_NJ
-signature UNSAFE = UNSAFE
-
 open Basis2002
 
 (* Rebind some structures so that their definitions appear later, so that they
@@ -92,6 +61,3 @@
 structure Word16 = Word16
 structure Word32 = Word32
 structure Word64 = Word64
-
-_basis_done MLtonFFI
-



1.1                  mlton/basis-library/libs/basis-extra/basis-extra.mlb

Index: basis-extra.mlb
===================================================================
ann  
   deadCode true,
   sequenceUnit true,
   warnMatch true,
   warnUnused true, forceUsed
in
  local
    ../primitive.mlb
    (*
    #
    # Common basis implementation.
    #
    *)
    ../../top-level/infixes.sml
    ../../misc/basic.sml
    ../../misc/dynamic-wind.sig
    ../../misc/dynamic-wind.sml
    ../../general/general.sig
    ../../general/general.sml
    ../../misc/util.sml
    ../../general/option.sig
    ../../general/option.sml
    ../../list/list.sig
    ../../list/list.sml
    ../../list/list-pair.sig
    ../../list/list-pair.sml
    ../../arrays-and-vectors/slice.sig
    ../../arrays-and-vectors/sequence.sig
    ../../arrays-and-vectors/sequence.fun
    ../../arrays-and-vectors/vector-slice.sig
    ../../arrays-and-vectors/vector.sig
    ../../arrays-and-vectors/vector.sml
    ../../arrays-and-vectors/array-slice.sig
    ../../arrays-and-vectors/array.sig
    ../../arrays-and-vectors/array.sml
    ../../arrays-and-vectors/array2.sig
    ../../arrays-and-vectors/array2.sml
    ../../arrays-and-vectors/mono-vector-slice.sig
    ../../arrays-and-vectors/mono-vector.sig
    ../../arrays-and-vectors/mono-vector.fun
    ../../arrays-and-vectors/mono-array-slice.sig
    ../../arrays-and-vectors/mono-array.sig
    ../../arrays-and-vectors/mono-array.fun
    ../../arrays-and-vectors/mono-array2.sig
    ../../arrays-and-vectors/mono-array2.fun
    ../../arrays-and-vectors/mono.sml
    ../../text/string0.sml
    ../../text/char0.sml
    ../../misc/reader.sig
    ../../misc/reader.sml
    ../../text/string-cvt.sig
    ../../text/string-cvt.sml
    ../../general/bool.sig
    ../../general/bool.sml
    ../../integer/integer.sig
    ../../integer/int.sml
    ../../text/char.sig
    ../../text/char.sml
    ../../text/substring.sig
    ../../text/substring.sml
    ../../text/string.sig
    ../../text/string.sml
    ../../misc/C.sig
    ../../misc/C.sml
    ../../integer/word.sig
    ../../integer/word.sml
    ../../integer/int-inf.sig
    ../../integer/int-inf.sml
    ../../real/IEEE-real.sig
    ../../real/IEEE-real.sml
    ../../real/math.sig
    ../../real/real.sig
    ../../real/real.fun
    ../../integer/pack-word.sig
    ../../integer/pack-word32.sml
    ../../text/byte.sig
    ../../text/byte.sml
    ../../text/text.sig
    ../../text/text.sml
    ../../real/pack-real.sig
    ../../real/pack-real.sml
    ../../real/real32.sml
    ../../real/real64.sml
    ../../integer/patch.sml
    ../../integer/embed-int.sml
    ../../integer/embed-word.sml

    ../../top-level/arithmetic.sml

    (*
    # misc/unique-id.sig
    # misc/unique-id.fun
    *)
    ../../misc/cleaner.sig
    ../../misc/cleaner.sml

    ../../system/pre-os.sml
    ../../system/time.sig
    ../../system/time.sml
    ../../system/date.sig
    ../../system/date.sml

    ../../io/io.sig
    ../../io/io.sml
    ../../io/prim-io.sig
    ../../io/prim-io.fun
    ../../io/bin-prim-io.sml
    ../../io/text-prim-io.sml

    ../../posix/error.sig
    ../../posix/error.sml
    ../../posix/flags.sig
    ../../posix/flags.sml
    ../../posix/signal.sig
    ../../posix/signal.sml
    ../../posix/proc-env.sig
    ../../posix/proc-env.sml
    ../../posix/file-sys.sig
    ../../posix/file-sys.sml
    ../../posix/io.sig
    ../../posix/io.sml
    ../../posix/process.sig
    ../../posix/process.sml
    ../../posix/sys-db.sig
    ../../posix/sys-db.sml
    ../../posix/tty.sig
    ../../posix/tty.sml
    ../../posix/posix.sig
    ../../posix/posix.sml

    ../../io/stream-io.sig
    ../../io/stream-io.fun
    ../../io/imperative-io.sig
    ../../io/imperative-io.fun
    ../../io/bin-stream-io.sig
    ../../io/bin-io.sig
    ../../io/bin-io.sml
    ../../io/text-stream-io.sig
    ../../io/text-io.sig
    ../../io/text-io.sml

    ../../system/path.sig
    ../../system/path.sml
    ../../system/file-sys.sig
    ../../system/file-sys.sml
    ../../system/command-line.sig
    ../../system/command-line.sml

    ../../general/sml90.sig
    ../../general/sml90.sml

    ../../mlton/process.sig
    ../../mlton/process.sml
    ../../mlton/exn.sig
    ../../mlton/exn.sml
    ../../mlton/thread.sig
    ../../mlton/thread.sml
    ../../mlton/signal.sig
    ../../mlton/signal.sml
    ../../mlton/rusage.sig
    ../../mlton/rusage.sml

    ../../system/process.sig
    ../../system/process.sml
    ../../system/io.sig
    ../../system/io.sml
    ../../system/os.sig
    ../../system/os.sml
    ../../system/unix.sig
    ../../system/unix.sml
    ../../system/timer.sig
    ../../system/timer.sml

    ../../net/net.sig
    ../../net/net.sml
    ../../net/net-host-db.sig
    ../../net/net-host-db.sml
    ../../net/net-prot-db.sig
    ../../net/net-prot-db.sml
    ../../net/net-serv-db.sig
    ../../net/net-serv-db.sml
    ../../net/socket.sig
    ../../net/socket.sml
    ../../net/generic-sock.sig
    ../../net/generic-sock.sml
    ../../net/inet-sock.sig
    ../../net/inet-sock.sml
    ../../net/unix-sock.sig
    ../../net/unix-sock.sml

    ../../mlton/array.sig
    ../../mlton/cont.sig
    ../../mlton/cont.sml
    ../../mlton/random.sig
    ../../mlton/random.sml
    ../../mlton/io.sig
    ../../mlton/io.fun
    ../../mlton/text-io.sig
    ../../mlton/bin-io.sig
    ../../mlton/itimer.sig
    ../../mlton/itimer.sml
    ../../mlton/ffi.sig
    ../../mlton/ffi.sml
    ../../mlton/gc.sig
    ../../mlton/gc.sml
    ../../mlton/int-inf.sig
    ../../mlton/platform.sig
    ../../mlton/platform.sml
    ../../mlton/pointer.sig
    ../../mlton/pointer.sml
    ../../mlton/proc-env.sig
    ../../mlton/proc-env.sml
    ../../mlton/profile.sig
    ../../mlton/profile.sml
    (*
    # mlton/ptrace.sig
    # mlton/ptrace.sml
    *)
    ../../mlton/rlimit.sig
    ../../mlton/rlimit.sml
    ../../mlton/socket.sig
    ../../mlton/socket.sml
    ../../mlton/syslog.sig
    ann allowImport true in ../../mlton/syslog.sml end
    ../../mlton/vector.sig
    ../../mlton/weak.sig
    ../../mlton/weak.sml
    ../../mlton/finalizable.sig
    ../../mlton/finalizable.sml
    ../../mlton/word.sig
    ../../mlton/world.sig
    ../../mlton/world.sml
    ../../mlton/mlton.sig
    ../../mlton/mlton.sml

    ../../sml-nj/sml-nj.sig
    ../../sml-nj/sml-nj.sml
    ../../sml-nj/unsafe.sig
    ../../sml-nj/unsafe.sml

    top-level/basis.sig
    ann 
      allowRebindEquals true 
    in 
      top-level/basis.sml 
    end
  in
    structure BasisExtra 
    top-level/basis-sigs.sml
    top-level/basis-funs.sml
    top-level/top-level.sml 
  end
end



1.1                  mlton/basis-library/libs/basis-extra/top-level/basis-funs.sml

Index: basis-funs.sml
===================================================================
(* Required functors *)

(* Optional functors *)
functor PrimIO (S: PRIM_IO_ARG): PRIM_IO = PrimIO (S)
functor StreamIO (S: STREAM_IO_ARG): STREAM_IO = StreamIO (S)
functor ImperativeIO (S: IMPERATIVE_IO_ARG): IMPERATIVE_IO = ImperativeIO (S)



1.1                  mlton/basis-library/libs/basis-extra/top-level/basis-sigs.sml

Index: basis-sigs.sml
===================================================================
(* Required signatures *)
signature ARRAY = ARRAY 
signature ARRAY_SLICE = ARRAY_SLICE 
signature BIN_IO = BIN_IO 
signature BOOL = BOOL 
signature BYTE = BYTE 
signature CHAR = CHAR 
signature COMMAND_LINE = COMMAND_LINE 
signature DATE = DATE 
signature GENERAL = GENERAL 
signature IEEE_REAL = IEEE_REAL 
signature IMPERATIVE_IO = IMPERATIVE_IO 
signature INTEGER = INTEGER 
signature INT_INF = INT_INF 
signature IO = IO 
signature LIST = LIST 
signature LIST_PAIR = LIST_PAIR 
signature MATH = MATH 
signature MONO_ARRAY = MONO_ARRAY 
signature MONO_ARRAY_SLICE = MONO_ARRAY_SLICE 
signature MONO_VECTOR = MONO_VECTOR 
signature MONO_VECTOR_SLICE = MONO_VECTOR_SLICE 
signature OPTION = OPTION 
signature OS = OS 
signature OS_FILE_SYS = OS_FILE_SYS 
signature OS_IO = OS_IO 
signature OS_PATH = OS_PATH 
signature OS_PROCESS = OS_PROCESS 
signature PRIM_IO = PRIM_IO 
signature REAL = REAL 
signature STREAM_IO = STREAM_IO
signature STRING = STRING 
signature STRING_CVT = STRING_CVT 
signature SUBSTRING = SUBSTRING 
signature TEXT = TEXT 
signature TEXT_IO = TEXT_IO 
signature TEXT_STREAM_IO = TEXT_STREAM_IO 
signature TIME = TIME 
signature TIMER = TIMER 
signature VECTOR = VECTOR 
signature VECTOR_SLICE = VECTOR_SLICE 
signature WORD = WORD

(* Optional signatures *)
signature ARRAY2 = ARRAY2 
signature BIT_FLAGS = BIT_FLAGS 
signature GENERIC_SOCK = GENERIC_SOCK 
signature INET_SOCK = INET_SOCK 
signature INT_INF = INT_INF 
signature MONO_ARRAY2 = MONO_ARRAY2 
signature NET_HOST_DB = NET_HOST_DB 
signature NET_PROT_DB = NET_PROT_DB 
signature NET_SERV_DB = NET_SERV_DB 
signature PACK_REAL = PACK_REAL 
signature PACK_WORD = PACK_WORD 
signature POSIX = POSIX 
signature POSIX_ERROR = POSIX_ERROR 
signature POSIX_FILE_SYS = POSIX_FILE_SYS 
signature POSIX_IO = POSIX_IO 
signature POSIX_PROC_ENV = POSIX_PROC_ENV 
signature POSIX_PROCESS = POSIX_PROCESS 
signature POSIX_SIGNAL = POSIX_SIGNAL 
signature POSIX_SYS_DB = POSIX_SYS_DB 
signature POSIX_TTY = POSIX_TTY 
signature SOCKET = SOCKET 
signature UNIX = UNIX 
signature UNIX_SOCK = UNIX_SOCK 
(*
signature WINDOWS = WINDOWS
*)

(* Non-standard signatures *)
signature PRIM_IO_ARG = PRIM_IO_ARG
signature STREAM_IO_ARG = STREAM_IO_ARG
signature IMPERATIVE_IO_ARG = IMPERATIVE_IO_ARG
signature SML90 = SML90

signature MLTON = MLTON
signature MLTON_ARRAY = MLTON_ARRAY
signature MLTON_BIN_IO = MLTON_BIN_IO
signature MLTON_CONT = MLTON_CONT
signature MLTON_EXN = MLTON_EXN
signature MLTON_FINALIZABLE = MLTON_FINALIZABLE
signature MLTON_GC = MLTON_GC
signature MLTON_INT_INF = MLTON_INT_INF
signature MLTON_IO = MLTON_IO
signature MLTON_ITIMER = MLTON_ITIMER
signature MLTON_PLATFORM = MLTON_PLATFORM
signature MLTON_POINTER = MLTON_POINTER
signature MLTON_PROC_ENV = MLTON_PROC_ENV
signature MLTON_PROCESS = MLTON_PROCESS
signature MLTON_PROFILE = MLTON_PROFILE
signature MLTON_RANDOM = MLTON_RANDOM
signature MLTON_RLIMIT = MLTON_RLIMIT
signature MLTON_RUSAGE = MLTON_RUSAGE
signature MLTON_SIGNAL = MLTON_SIGNAL
signature MLTON_SOCKET = MLTON_SOCKET
signature MLTON_SYSLOG = MLTON_SYSLOG
signature MLTON_TEXT_IO = MLTON_TEXT_IO
signature MLTON_THREAD = MLTON_THREAD
signature MLTON_VECTOR = MLTON_VECTOR
signature MLTON_WEAK = MLTON_WEAK
signature MLTON_WORD = MLTON_WORD
signature MLTON_WORLD = MLTON_WORLD
signature SML_OF_NJ = SML_OF_NJ
signature UNSAFE = UNSAFE



1.1                  mlton/basis-library/libs/basis-extra/top-level/basis.sig

Index: basis.sig
===================================================================
signature BASIS_EXTRA =
   sig
      (* Top-level types *)
      eqtype 'a array
      datatype bool = datatype bool
      eqtype char
      type exn
      eqtype int 
      datatype 'a option = NONE | SOME of 'a 
      datatype order = LESS | EQUAL | GREATER 
      datatype list = datatype list
      datatype ref = datatype ref
      type real
      eqtype string
      type substring 
      eqtype unit
      eqtype 'a vector
      eqtype word 

      (* Top-level exceptions *)
      exception Bind 
      exception Chr
      exception Div
      exception Domain
      exception Empty
      exception Fail of string
      exception Match
      exception Option
      exception Overflow
      exception Size
      exception Span
      exception Subscript
 
      (* Top-level values *)
      val = : ''a * ''a -> bool
      val <> : ''a * ''a -> bool

      val ! : 'a ref -> 'a
      val := : 'a ref * 'a -> unit
      val @ : ('a list * 'a list) -> 'a list
      val ^ : string * string -> string
      val app : ('a -> unit) -> 'a list -> unit
      val before : 'a * unit -> 'a
      val ceil : real -> int 
      val chr : int -> char
      val concat : string list -> string
      val exnMessage : exn -> string
      val exnName : exn -> string
      val explode : string -> char list
      val floor : real -> int 
      val foldl : ('a * 'b -> 'b) -> 'b -> 'a list -> 'b
      val foldr : ('a * 'b -> 'b) -> 'b -> 'a list -> 'b 
      val getOpt : ('a option * 'a) -> 'a
      val hd : 'a list -> 'a
      val ignore : 'a -> unit
      val isSome : 'a option -> bool
      val implode : char list -> string
      val length : 'a list -> int
      val map : ('a -> 'b) -> 'a list -> 'b list
      val not : bool -> bool
      val null : 'a list -> bool
      val o : ('a -> 'b) * ('c -> 'a) -> 'c -> 'b
      val ord : char -> int
      val print : string -> unit
      val real : int -> real
(*
      val ref : 'a -> 'a ref
*)
      val rev : 'a list -> 'a list
      val round : real -> int
      val size : string -> int
      val str : char -> string
      val substring : string * int * int -> string
      val tl : 'a list -> 'a list
      val trunc : real -> int 
(*
      val use : string -> unit
*)
      val valOf : 'a option -> 'a 
      val vector : 'a list -> 'a vector
	
      (* Required structures *)
      structure Array : ARRAY	
      structure ArraySlice : ARRAY_SLICE	
      structure BinIO : BIN_IO	
      structure BinPrimIO : PRIM_IO	
      structure Bool : BOOL	
      structure Byte : BYTE	
      structure Char : CHAR	
      structure CharArray : MONO_ARRAY	
      structure CharArraySlice : MONO_ARRAY_SLICE	
      structure CharVector : MONO_VECTOR	
      structure CharVectorSlice : MONO_VECTOR_SLICE	
      structure CommandLine : COMMAND_LINE	
      structure Date : DATE	
      structure General : GENERAL	
      structure IEEEReal : IEEE_REAL	
      structure Int : INTEGER	
      structure IO : IO	
      structure LargeInt : INTEGER	
      structure LargeReal : REAL	
      structure LargeWord : WORD	
      structure List : LIST	
      structure ListPair : LIST_PAIR	
      structure Math : MATH	
      structure Option : OPTION	
      structure OS : OS	
      structure Position : INTEGER	
      structure Real : REAL	
      structure StringCvt : STRING_CVT	
      structure String : STRING	
      structure Substring : SUBSTRING	
      structure TextIO : TEXT_IO	
      structure TextPrimIO : PRIM_IO	
      structure Text : TEXT	
      structure Time : TIME	
      structure Timer : TIMER	
      structure VectorSlice : VECTOR_SLICE	
      structure Vector : VECTOR	
      structure Word : WORD	
      structure Word8Array : MONO_ARRAY	
      structure Word8Array2 : MONO_ARRAY2	
      structure Word8ArraySlice : MONO_ARRAY_SLICE	
      structure Word8Vector : MONO_VECTOR	
      structure Word8VectorSlice : MONO_VECTOR_SLICE	

      (* Optional structures *)
      structure Array2 : ARRAY2
      structure BoolArray : MONO_ARRAY
      structure BoolArray2 : MONO_ARRAY2
      structure BoolArraySlice : MONO_ARRAY_SLICE
      structure BoolVector : MONO_VECTOR
      structure BoolVectorSlice : MONO_VECTOR_SLICE
      structure CharArray2 : MONO_ARRAY2
      structure FixedInt : INTEGER
      structure GenericSock : GENERIC_SOCK
      structure INetSock : INET_SOCK
      structure Int2: INTEGER
      structure Int3: INTEGER
      structure Int4: INTEGER
      structure Int5: INTEGER
      structure Int6: INTEGER
      structure Int7: INTEGER
      structure Int8: INTEGER
      structure Int9: INTEGER
      structure Int10: INTEGER
      structure Int11: INTEGER
      structure Int12: INTEGER
      structure Int13: INTEGER
      structure Int14: INTEGER
      structure Int15: INTEGER
      structure Int16: INTEGER
      structure Int17: INTEGER
      structure Int18: INTEGER
      structure Int19: INTEGER
      structure Int20: INTEGER
      structure Int21: INTEGER
      structure Int22: INTEGER
      structure Int23: INTEGER
      structure Int24: INTEGER
      structure Int25: INTEGER
      structure Int26: INTEGER
      structure Int27: INTEGER
      structure Int28: INTEGER
      structure Int29: INTEGER
      structure Int30: INTEGER
      structure Int31: INTEGER
      structure Int32: INTEGER
      structure Int64: INTEGER
      structure Int8Array : MONO_ARRAY
      structure Int8Array2 : MONO_ARRAY2
      structure Int8ArraySlice : MONO_ARRAY_SLICE
      structure Int8Vector : MONO_VECTOR
      structure Int8VectorSlice : MONO_VECTOR_SLICE
      structure Int16Array : MONO_ARRAY
      structure Int16Array2 : MONO_ARRAY2
      structure Int16ArraySlice : MONO_ARRAY_SLICE
      structure Int16Vector : MONO_VECTOR
      structure Int16VectorSlice : MONO_VECTOR_SLICE
      structure Int32Array : MONO_ARRAY
      structure Int32Array2 : MONO_ARRAY2
      structure Int32ArraySlice : MONO_ARRAY_SLICE
      structure Int32Vector : MONO_VECTOR
      structure Int32VectorSlice : MONO_VECTOR_SLICE
      structure Int64Array : MONO_ARRAY
      structure Int64Array2 : MONO_ARRAY2
      structure Int64ArraySlice : MONO_ARRAY_SLICE
      structure Int64Vector : MONO_VECTOR
      structure Int64VectorSlice : MONO_VECTOR_SLICE
      structure IntArray : MONO_ARRAY
      structure IntArray2 : MONO_ARRAY2
      structure IntArraySlice : MONO_ARRAY_SLICE
      structure IntVector : MONO_VECTOR
      structure IntVectorSlice : MONO_VECTOR_SLICE
      structure IntInf : INT_INF
      structure LargeIntArray : MONO_ARRAY
      structure LargeIntArray2 : MONO_ARRAY2
      structure LargeIntArraySlice : MONO_ARRAY_SLICE
      structure LargeIntVector : MONO_VECTOR
      structure LargeIntVectorSlice : MONO_VECTOR_SLICE
      structure LargeRealArray : MONO_ARRAY
      structure LargeRealArray2 : MONO_ARRAY2
      structure LargeRealArraySlice : MONO_ARRAY_SLICE
      structure LargeRealVector : MONO_VECTOR
      structure LargeRealVectorSlice : MONO_VECTOR_SLICE
      structure LargeWordArray : MONO_ARRAY
      structure LargeWordArray2 : MONO_ARRAY2
      structure LargeWordArraySlice : MONO_ARRAY_SLICE
      structure LargeWordVector : MONO_VECTOR
      structure LargeWordVectorSlice : MONO_VECTOR_SLICE
      structure NetHostDB : NET_HOST_DB
      structure NetProtDB : NET_PROT_DB
      structure NetServDB : NET_SERV_DB
      structure PackReal32Big : PACK_REAL
      structure PackReal32Little : PACK_REAL
      structure PackReal64Big : PACK_REAL
      structure PackReal64Little : PACK_REAL
      structure PackRealBig : PACK_REAL
      structure PackRealLittle : PACK_REAL
      structure PackWord32Big : PACK_WORD
      structure PackWord32Little : PACK_WORD
      structure Posix : POSIX
      structure Real32 : REAL
      structure Real32Array : MONO_ARRAY
      structure Real32Array2 : MONO_ARRAY2
      structure Real32ArraySlice : MONO_ARRAY_SLICE
      structure Real32Vector : MONO_VECTOR
      structure Real32VectorSlice : MONO_VECTOR_SLICE
      structure Real64 : REAL
      structure Real64Array : MONO_ARRAY
      structure Real64Array2 : MONO_ARRAY2
      structure Real64ArraySlice : MONO_ARRAY_SLICE
      structure Real64Vector : MONO_VECTOR
      structure Real64VectorSlice : MONO_VECTOR_SLICE
      structure RealArray : MONO_ARRAY
      structure RealArray2 : MONO_ARRAY2
      structure RealArraySlice : MONO_ARRAY_SLICE
      structure RealVector : MONO_VECTOR
      structure RealVectorSlice : MONO_VECTOR_SLICE
      structure Socket : SOCKET
      structure SysWord : WORD
      structure Unix : UNIX
      structure UnixSock : UNIX_SOCK
(*
      structure WideChar : CHAR
      structure WideCharArray : MONO_ARRAY
      structure WideCharArray2 : MONO_ARRAY2
      structure WideCharArraySlice : MONO_ARRAY_SLICE
      structure WideCharVector : MONO_VECTOR
      structure WideCharVectorSlice : MONO_VECTOR_SLICE
      structure WideString : STRING
      structure WideSubstring : SUBSTRING
      structure WideText : TEXT
      structure WideTextPrimIO : PRIM_IO
*)
(*
      structure Windows : WINDOWS
*)
      structure Word2: WORD
      structure Word3: WORD
      structure Word4: WORD
      structure Word5: WORD
      structure Word6: WORD
      structure Word7: WORD
      structure Word8: WORD
      structure Word9: WORD
      structure Word10: WORD
      structure Word11: WORD
      structure Word12: WORD
      structure Word13: WORD
      structure Word14: WORD
      structure Word15: WORD
      structure Word16: WORD
      structure Word17: WORD
      structure Word18: WORD
      structure Word19: WORD
      structure Word20: WORD
      structure Word21: WORD
      structure Word22: WORD
      structure Word23: WORD
      structure Word24: WORD
      structure Word25: WORD
      structure Word26: WORD
      structure Word27: WORD
      structure Word28: WORD
      structure Word29: WORD
      structure Word30: WORD
      structure Word31: WORD
      structure Word32: WORD
      structure Word64: WORD
      structure WordArray : MONO_ARRAY
      structure WordArray2 : MONO_ARRAY2
      structure WordArraySlice : MONO_ARRAY_SLICE
      structure WordVector : MONO_VECTOR
      structure WordVectorSlice : MONO_VECTOR_SLICE
      structure Word16Array : MONO_ARRAY
      structure Word16Array2 : MONO_ARRAY2
      structure Word16ArraySlice : MONO_ARRAY_SLICE
      structure Word16Vector : MONO_VECTOR
      structure Word16VectorSlice : MONO_VECTOR_SLICE
      structure Word32Array : MONO_ARRAY
      structure Word32Array2 : MONO_ARRAY2
      structure Word32ArraySlice : MONO_ARRAY_SLICE
      structure Word32Vector : MONO_VECTOR
      structure Word32VectorSlice : MONO_VECTOR_SLICE
      structure Word64Array : MONO_ARRAY
      structure Word64Array2 : MONO_ARRAY2
      structure Word64ArraySlice : MONO_ARRAY_SLICE
      structure Word64Vector : MONO_VECTOR
      structure Word64VectorSlice : MONO_VECTOR_SLICE

      (* Non-standard structures *)
      structure SML90: SML90
      structure MLton: MLTON
      structure SMLofNJ: SML_OF_NJ
      structure Unsafe: UNSAFE

      sharing type MLton.IntInf.t = IntInf.int
      sharing type MLton.Process.pid = Posix.Process.pid
      sharing type MLton.Signal.t = Posix.Signal.signal
      sharing type MLton.Word.t = Word.word
      sharing type MLton.Word8.t = Word8.word
      sharing Unsafe.CharArray = CharArray
      sharing Unsafe.CharVector = CharVector
      sharing Unsafe.Real64Array = Real64Array
      sharing Unsafe.Word8Array = Word8Array
      sharing Unsafe.Word8Vector = Word8Vector
	 
      (* ************************************************** *)
      (* ************************************************** *)

      (* Sharing constraints *)

      (* Top-level types *)
      sharing type unit = General.unit
      sharing type int = Int.int
      sharing type word = Word.word
      sharing type real = Real.real
      sharing type char = Char.char
      sharing type string = String.string
      sharing type substring = Substring.substring
      sharing type exn = General.exn
(* Can't use sharing on type array or vector, because they are rigid tycons.
 * Don't need it anyways, since it's built into the ARRAY and VECTOR signatures.
 *)
(*
      sharing type array = Array.array
      sharing type vector = Vector.vector 
*)
(*
      sharing type ref = General.ref
*)
(*
      sharing type bool = Bool.bool
*)
      sharing type option = Option.option
      sharing type order = General.order
(*
      sharing type list = List.list
*)

      sharing type int = Int32.int
      sharing type real = Real64.real
      sharing type word = Word32.word

      (* Required structures *)
(*
      sharing type BinIO.StreamIO.elem = Word8.word 
*)
      sharing type BinIO.StreamIO.reader = BinPrimIO.reader
      sharing type BinIO.StreamIO.pos = BinPrimIO.pos
(*
      sharing type BinIO.StreamIO.vector = Word8Vector.vector 
*)
      sharing type BinIO.StreamIO.writer = BinPrimIO.writer
      sharing type BinPrimIO.array = Word8Array.array
      sharing type BinPrimIO.array_slice = Word8ArraySlice.slice
      sharing type BinPrimIO.elem = Word8.word
      sharing type BinPrimIO.pos = Position.int
      sharing type BinPrimIO.vector = Word8Vector.vector
      sharing type BinPrimIO.vector_slice = Word8VectorSlice.slice
      sharing type Char.char = char
      sharing type Char.string = String.string
      sharing type CharArray.elem = char
      sharing type CharArray.vector = CharVector.vector
      sharing type CharArraySlice.elem = char
      sharing type CharArraySlice.array = CharArray.array
      sharing type CharArraySlice.vector = CharVector.vector
      sharing type CharArraySlice.vector_slice = CharVectorSlice.slice
      sharing type CharVector.elem = char
      sharing type CharVector.vector = String.string
      sharing type CharVectorSlice.elem = char
      sharing type CharVectorSlice.vector = String.string
      sharing type CharVectorSlice.slice = Substring.substring
      sharing type Int.int = int
      sharing type Math.real = Real.real
      sharing type Real.real = real
      sharing type String.string = string
      sharing type String.string = CharVector.vector
      sharing type String.char = Char.char
      sharing type Substring.substring = CharVectorSlice.slice
      sharing type Substring.string = String.string
      sharing type Substring.char = Char.char
      sharing type Text.Char.char = Char.char
      sharing type Text.String.string = String.string
      sharing type Text.Substring.substring = Substring.substring
      sharing type Text.CharVector.vector = CharVector.vector
      sharing type Text.CharArray.array = CharArray.array
      sharing type Text.CharArraySlice.slice = CharArraySlice.slice
      sharing type Text.CharVectorSlice.slice = CharVectorSlice.slice
(* redundant *)
(*
      sharing type TextIO.elem = char
      sharing type TextIO.vector = string 
*)
      sharing type TextPrimIO.array = CharArray.array
      sharing type TextPrimIO.array_slice = CharArraySlice.slice
      sharing type TextPrimIO.elem = Char.char
      sharing type TextPrimIO.pos = Position.int
      sharing type TextPrimIO.vector = CharVector.vector
      sharing type TextPrimIO.vector_slice = CharVectorSlice.slice
      sharing type Word8Array.elem = Word8.word
      sharing type Word8Array.vector = Word8Vector.vector
      sharing type Word8ArraySlice.elem = Word8.word
      sharing type Word8ArraySlice.array = Word8Array.array
      sharing type Word8ArraySlice.vector = Word8Vector.vector
      sharing type Word8ArraySlice.vector_slice = Word8VectorSlice.slice
      sharing type Word8Vector.elem = Word8.word
      sharing type Word8VectorSlice.elem = Word8.word
      sharing type Word8VectorSlice.vector = Word8Vector.vector
      sharing type Word8Array2.elem = Word8.word
      sharing type Word8Array2.vector = Word8Vector.vector
	
      (* Optional structures *)
      sharing type BoolArray.vector = BoolVector.vector
      sharing type BoolArraySlice.array = BoolArray.array
      sharing type BoolArraySlice.vector = BoolVector.vector
      sharing type BoolArraySlice.vector_slice = BoolVectorSlice.slice
      sharing type BoolVectorSlice.vector = BoolVector.vector
      sharing type BoolArray2.vector = BoolVector.vector
      sharing type CharArray2.elem = char
      sharing type CharArray2.vector = CharVector.vector
      sharing type IntArray.elem = int
      sharing type IntArray.vector = IntVector.vector
      sharing type IntArraySlice.elem = int
      sharing type IntArraySlice.array = IntArray.array
      sharing type IntArraySlice.vector = IntVector.vector
      sharing type IntArraySlice.vector_slice = IntVectorSlice.slice
      sharing type IntVector.elem = int
      sharing type IntVectorSlice.elem = int
      sharing type IntVectorSlice.vector = IntVector.vector
      sharing type IntArray2.elem = int
      sharing type IntArray2.vector = IntVector.vector
      sharing type Int8Array.elem = Int8.int
      sharing type Int8Array.vector = Int8Vector.vector
      sharing type Int8ArraySlice.elem = Int8.int
      sharing type Int8ArraySlice.array = Int8Array.array
      sharing type Int8ArraySlice.vector = Int8Vector.vector
      sharing type Int8ArraySlice.vector_slice = Int8VectorSlice.slice
      sharing type Int8Vector.elem = Int8.int
      sharing type Int8VectorSlice.elem = Int8.int
      sharing type Int8VectorSlice.vector = Int8Vector.vector
      sharing type Int8Array2.elem = Int8.int
      sharing type Int8Array2.vector = Int8Vector.vector
      sharing type Int16Array.elem = Int16.int
      sharing type Int16Array.vector = Int16Vector.vector
      sharing type Int16ArraySlice.elem = Int16.int
      sharing type Int16ArraySlice.array = Int16Array.array
      sharing type Int16ArraySlice.vector = Int16Vector.vector
      sharing type Int16ArraySlice.vector_slice = Int16VectorSlice.slice
      sharing type Int16Vector.elem = Int16.int
      sharing type Int16VectorSlice.elem = Int16.int
      sharing type Int16VectorSlice.vector = Int16Vector.vector
      sharing type Int16Array2.elem = Int16.int
      sharing type Int16Array2.vector = Int16Vector.vector
      sharing type Int32.int = Int.int
      sharing type Int32Array.elem = Int32.int
      sharing type Int32Array.vector = Int32Vector.vector
      sharing type Int32ArraySlice.elem = Int32.int
      sharing type Int32ArraySlice.array = Int32Array.array
      sharing type Int32ArraySlice.vector = Int32Vector.vector
      sharing type Int32ArraySlice.vector_slice = Int32VectorSlice.slice
      sharing type Int32Vector.elem = Int32.int
      sharing type Int32VectorSlice.elem = Int32.int
      sharing type Int32VectorSlice.vector = Int32Vector.vector
      sharing type Int32Array2.elem = Int32.int
      sharing type Int32Array2.vector = Int32Vector.vector
      sharing type Int64Array.elem = Int64.int
      sharing type Int64Array.vector = Int64Vector.vector
      sharing type Int64ArraySlice.elem = Int64.int
      sharing type Int64ArraySlice.array = Int64Array.array
      sharing type Int64ArraySlice.vector = Int64Vector.vector
      sharing type Int64ArraySlice.vector_slice = Int64VectorSlice.slice
      sharing type Int64Vector.elem = Int64.int
      sharing type Int64VectorSlice.elem = Int64.int
      sharing type Int64VectorSlice.vector = Int64Vector.vector
      sharing type Int64Array2.elem = Int64.int
      sharing type Int64Array2.vector = Int64Vector.vector
      sharing type LargeIntArray.elem = LargeInt.int
      sharing type LargeIntArray.vector = LargeIntVector.vector
      sharing type LargeIntArraySlice.elem = LargeInt.int
      sharing type LargeIntArraySlice.array = LargeIntArray.array
      sharing type LargeIntArraySlice.vector = LargeIntVector.vector
      sharing type LargeIntArraySlice.vector_slice = LargeIntVectorSlice.slice
      sharing type LargeIntVector.elem = LargeInt.int
      sharing type LargeIntVectorSlice.elem = LargeInt.int
      sharing type LargeIntVectorSlice.vector = LargeIntVector.vector
      sharing type LargeIntArray2.elem = LargeInt.int
      sharing type LargeIntArray2.vector = LargeIntVector.vector
      sharing type LargeRealArray.elem = LargeReal.real
      sharing type LargeRealArray.vector = LargeRealVector.vector
      sharing type LargeRealArraySlice.elem = LargeReal.real
      sharing type LargeRealArraySlice.array = LargeRealArray.array
      sharing type LargeRealArraySlice.vector = LargeRealVector.vector
      sharing type LargeRealArraySlice.vector_slice = LargeRealVectorSlice.slice
      sharing type LargeRealVector.elem = LargeReal.real
      sharing type LargeRealVectorSlice.elem = LargeReal.real
      sharing type LargeRealVectorSlice.vector = LargeRealVector.vector
      sharing type LargeRealArray2.elem = LargeReal.real
      sharing type LargeRealArray2.vector = LargeRealVector.vector
      sharing type LargeWordArray.elem = LargeWord.word
      sharing type LargeWordArray.vector = LargeWordVector.vector
      sharing type LargeWordArraySlice.elem = LargeWord.word
      sharing type LargeWordArraySlice.array = LargeWordArray.array
      sharing type LargeWordArraySlice.vector = LargeWordVector.vector
      sharing type LargeWordArraySlice.vector_slice = LargeWordVectorSlice.slice
      sharing type LargeWordVector.elem = LargeWord.word
      sharing type LargeWordVectorSlice.elem = LargeWord.word
      sharing type LargeWordVectorSlice.vector = LargeWordVector.vector
      sharing type LargeWordArray2.elem = LargeWord.word
      sharing type LargeWordArray2.vector = LargeWordVector.vector
      sharing type PackRealBig.real = real
      sharing type PackRealLittle.real = real
      sharing type PackReal32Big.real = Real32.real
      sharing type PackReal32Little.real = Real32.real
      sharing type PackReal64Big.real = Real64.real
      sharing type PackReal64Little.real = Real64.real
      sharing type Posix.Error.syserror = OS.syserror
      sharing type Posix.IO.file_desc = Posix.ProcEnv.file_desc
      sharing type Posix.FileSys.dirstream = OS.FileSys.dirstream
      sharing type Posix.FileSys.access_mode = OS.FileSys.access_mode
      sharing type Posix.Process.exit_status = Unix.exit_status
      sharing type Posix.Signal.signal = Unix.signal
      sharing type RealArray.elem = real
      sharing type RealArray.vector = RealVector.vector
      sharing type RealArraySlice.elem = real
      sharing type RealArraySlice.array = RealArray.array
      sharing type RealArraySlice.vector = RealVector.vector
      sharing type RealArraySlice.vector_slice = RealVectorSlice.slice
      sharing type RealVector.elem = real
      sharing type RealVectorSlice.elem = real
      sharing type RealVectorSlice.vector = RealVector.vector
      sharing type RealArray2.elem = real
      sharing type RealArray2.vector = RealVector.vector
      sharing type Real32Array.elem = Real32.real
      sharing type Real32Array.vector = Real32Vector.vector
      sharing type Real32ArraySlice.elem = Real32.real
      sharing type Real32ArraySlice.array = Real32Array.array
      sharing type Real32ArraySlice.vector = Real32Vector.vector
      sharing type Real32ArraySlice.vector_slice = Real32VectorSlice.slice
      sharing type Real32Vector.elem = Real32.real
      sharing type Real32VectorSlice.elem = Real32.real
      sharing type Real32VectorSlice.vector = Real32Vector.vector
      sharing type Real32Array2.elem = Real32.real
      sharing type Real32Array2.vector = Real32Vector.vector
      sharing type Real64Array.elem = Real64.real
      sharing type Real64Array.vector = Real64Vector.vector
      sharing type Real64ArraySlice.elem = Real64.real
      sharing type Real64ArraySlice.array = Real64Array.array
      sharing type Real64ArraySlice.vector = Real64Vector.vector
      sharing type Real64ArraySlice.vector_slice = Real64VectorSlice.slice
      sharing type Real64Vector.elem = Real64.real
      sharing type Real64VectorSlice.elem = Real64.real
      sharing type Real64VectorSlice.vector = Real64Vector.vector
      sharing type Real64Array2.elem = Real64.real
      sharing type Real64Array2.vector = Real64Vector.vector
      sharing type Unix.exit_status = Posix.Process.exit_status
      sharing type WordArray.elem = word
      sharing type WordArray.vector = WordVector.vector
      sharing type WordArraySlice.elem = word
      sharing type WordArraySlice.array = WordArray.array
      sharing type WordArraySlice.vector = WordVector.vector
      sharing type WordArraySlice.vector_slice = WordVectorSlice.slice
      sharing type WordVector.elem = word
      sharing type WordVectorSlice.elem = word
      sharing type WordVectorSlice.vector = WordVector.vector
      sharing type WordArray2.elem = word
      sharing type WordArray2.vector = WordVector.vector
      sharing type Word16Array.elem = Word16.word
      sharing type Word16Array.vector = Word16Vector.vector
      sharing type Word16ArraySlice.elem = Word16.word
      sharing type Word16ArraySlice.array = Word16Array.array
      sharing type Word16ArraySlice.vector = Word16Vector.vector
      sharing type Word16ArraySlice.vector_slice = Word16VectorSlice.slice
      sharing type Word16Vector.elem = Word16.word
      sharing type Word16VectorSlice.elem = Word16.word
      sharing type Word16VectorSlice.vector = Word16Vector.vector
      sharing type Word16Array2.elem = Word16.word
      sharing type Word16Array2.vector = Word16Vector.vector
      sharing type Word32.word = Word.word
      sharing type Word32Array.elem = Word32.word
      sharing type Word32Array.vector = Word32Vector.vector
      sharing type Word32ArraySlice.elem = Word32.word
      sharing type Word32ArraySlice.array = Word32Array.array
      sharing type Word32ArraySlice.vector = Word32Vector.vector
      sharing type Word32ArraySlice.vector_slice = Word32VectorSlice.slice
      sharing type Word32Vector.elem = Word32.word
      sharing type Word32VectorSlice.elem = Word32.word
      sharing type Word32VectorSlice.vector = Word32Vector.vector
      sharing type Word32Array2.elem = Word32.word
      sharing type Word32Array2.vector = Word32Vector.vector
      sharing type Word64Array.elem = Word64.word
      sharing type Word64Array.vector = Word64Vector.vector
      sharing type Word64ArraySlice.elem = Word64.word
      sharing type Word64ArraySlice.array = Word64Array.array
      sharing type Word64ArraySlice.vector = Word64Vector.vector
      sharing type Word64ArraySlice.vector_slice = Word64VectorSlice.slice
      sharing type Word64Vector.elem = Word64.word
      sharing type Word64VectorSlice.elem = Word64.word
      sharing type Word64VectorSlice.vector = Word64Vector.vector
      sharing type Word64Array2.elem = Word64.word
      sharing type Word64Array2.vector = Word64Vector.vector
   end
   (* bool is already defined as bool and so cannot be shared.
    * So, we where these to get the needed sharing.
    *)
   where type BoolArray.elem = bool
   where type BoolArray2.elem = bool
   where type BoolArraySlice.elem = bool
   where type BoolVector.elem = bool
   where type BoolVectorSlice.elem = bool

   (* Top-level types.  These appear free in basis signatures and hence must be
    * the same in the basis as at the top level.
    *)
   where type 'a array = 'a array
   where type 'a option = 'a option
   where type 'a vector = 'a vector
   where type char = char
   where type exn = exn
   where type order = order
   where type real = real
   where type string = string
   where type substring = substring
   where type unit = unit

   (* Types referenced in signatures by structure name *)
(*
   where type 'a Array.array = 'a Array.array
*)
   where type Array2.traversal = Array2.traversal
   where type 'a ArraySlice.slice = 'a ArraySlice.slice
   where type BinIO.instream = BinIO.instream
   where type BinIO.outstream = BinIO.outstream
   where type BinPrimIO.reader = BinPrimIO.reader
   where type BinPrimIO.writer = BinPrimIO.writer
   where type FixedInt.int = FixedInt.int
   where type IO.buffer_mode = IO.buffer_mode
   where type LargeInt.int = LargeInt.int
   where type LargeReal.real = LargeReal.real
   where type LargeWord.word = LargeWord.word
   where type IEEEReal.real_order = IEEEReal.real_order
   where type IEEEReal.float_class = IEEEReal.float_class
   where type IEEEReal.rounding_mode = IEEEReal.rounding_mode
   where type NetHostDB.in_addr = NetHostDB.in_addr
   where type NetHostDB.addr_family = NetHostDB.addr_family
   where type OS.IO.iodesc = OS.IO.iodesc
   where type OS.Process.status = OS.Process.status (* UNIX *)
   where type Position.int = Position.int
   where type Posix.IO.file_desc = Posix.IO.file_desc
   where type Posix.Signal.signal = Posix.Signal.signal
   where type Socket.dgram = Socket.dgram
   where type ('a, 'b) Socket.sock = ('a, 'b) Socket.sock
   where type 'a Socket.sock_addr = 'a Socket.sock_addr
   where type Socket.SOCK.sock_type = Socket.SOCK.sock_type (* GENERIC_SOCK *)
   where type 'a Socket.stream = 'a Socket.stream
   where type StringCvt.radix = StringCvt.radix
   where type StringCvt.realfmt = StringCvt.realfmt
(*
   where type ('a, 'b) StringCvt.reader = ('a, 'b) StringCvt.reader
*)
   where type SysWord.word = SysWord.word
   where type TextIO.instream = TextIO.instream
   where type TextIO.outstream = TextIO.outstream
   where type TextPrimIO.reader = TextPrimIO.reader
   where type TextPrimIO.writer = TextPrimIO.writer
   where type Time.time = Time.time
(*
   where type 'a Vector.vector = 'a Vector.vector
*)
   where type 'a VectorSlice.slice = 'a VectorSlice.slice
   where type Word8Array.array = Word8Array.array
   where type Word8ArraySlice.slice = Word8ArraySlice.slice
   where type Word8ArraySlice.vector_slice = Word8ArraySlice.vector_slice
   where type Word8Vector.vector = Word8Vector.vector

   (* Types that must be exposed because constants denote them. *)
   where type Int2.int = Int2.int
   where type Int3.int = Int3.int
   where type Int4.int = Int4.int
   where type Int5.int = Int5.int
   where type Int6.int = Int6.int
   where type Int7.int = Int7.int
   where type Int8.int = Int8.int
   where type Int9.int = Int9.int
   where type Int10.int = Int10.int
   where type Int11.int = Int11.int
   where type Int12.int = Int12.int
   where type Int13.int = Int13.int
   where type Int14.int = Int14.int
   where type Int15.int = Int15.int
   where type Int16.int = Int16.int
   where type Int17.int = Int17.int
   where type Int18.int = Int18.int
   where type Int19.int = Int19.int
   where type Int20.int = Int20.int
   where type Int21.int = Int21.int
   where type Int22.int = Int22.int
   where type Int23.int = Int23.int
   where type Int24.int = Int24.int
   where type Int25.int = Int25.int
   where type Int26.int = Int26.int
   where type Int27.int = Int27.int
   where type Int28.int = Int28.int
   where type Int29.int = Int29.int
   where type Int30.int = Int30.int
   where type Int31.int = Int31.int
   where type Int32.int = Int32.int
   where type Int64.int = Int64.int
   where type IntInf.int = IntInf.int
   where type Real32.real = Real32.real
   where type Word2.word = Word2.word
   where type Word3.word = Word3.word
   where type Word4.word = Word4.word
   where type Word5.word = Word5.word
   where type Word6.word = Word6.word
   where type Word7.word = Word7.word
   where type Word8.word = Word8.word
   where type Word9.word = Word9.word
   where type Word10.word = Word10.word
   where type Word11.word = Word11.word
   where type Word12.word = Word12.word
   where type Word13.word = Word13.word
   where type Word14.word = Word14.word
   where type Word15.word = Word15.word
   where type Word16.word = Word16.word
   where type Word17.word = Word17.word
   where type Word18.word = Word18.word
   where type Word19.word = Word19.word
   where type Word20.word = Word20.word
   where type Word21.word = Word21.word
   where type Word22.word = Word22.word
   where type Word23.word = Word23.word
   where type Word24.word = Word24.word
   where type Word25.word = Word25.word
   where type Word26.word = Word26.word
   where type Word27.word = Word27.word
   where type Word28.word = Word28.word
   where type Word29.word = Word29.word
   where type Word30.word = Word30.word
   where type Word31.word = Word31.word
   where type Word32.word = Word32.word
   where type Word64.word = Word64.word

   where type 'a MLton.Thread.t = 'a MLton.Thread.t



1.1                  mlton/basis-library/libs/basis-extra/top-level/basis.sml

Index: basis.sml
===================================================================
structure BasisExtra :> BASIS_EXTRA = 
   struct
      (* Required structures *)
      structure Array = Array
      structure ArraySlice = ArraySlice
      structure BinIO = BinIO
      structure BinPrimIO = BinPrimIO
      structure Bool = Bool
      structure Byte = Byte
      structure Char = Char
      structure CharArray = CharArray
      structure CharArraySlice = CharArraySlice
      structure CharVector = CharVector
      structure CharVectorSlice = CharVectorSlice
      structure CommandLine = CommandLine
      structure Date = Date
      structure General = General
      structure IEEEReal = IEEEReal
      structure IO = IO
      structure Int = Int
      structure LargeInt = LargeInt
      structure LargeReal = LargeReal
      structure LargeWord = LargeWord
      structure List = List
      structure ListPair = ListPair
      structure OS = OS
      structure Option = Option
      structure Position = Position
      structure Real = Real
      structure String = String
      structure StringCvt = StringCvt
      structure Substring = Substring
      structure Text = Text
      structure TextIO = TextIO
      structure TextPrimIO = TextPrimIO
      structure Time = Time
      structure Timer = Timer
      structure Vector = Vector
      structure VectorSlice = VectorSlice
      structure Word = Word
      structure Word8 = Word8
      structure Word8Array = Word8Array
      structure Word8Array2 = Word8Array2
      structure Word8ArraySlice = Word8ArraySlice
      structure Word8Vector = Word8Vector
      structure Word8VectorSlice = Word8VectorSlice

      (* Optional structures *)
      structure Array2 = Array2
      structure BoolArray = BoolArray
      structure BoolArray2 = BoolArray2
      structure BoolArraySlice = BoolArraySlice
      structure BoolVector = BoolVector
      structure BoolVectorSlice = BoolVectorSlice
      structure CharArray2 = CharArray2
      structure FixedInt = FixedInt
      structure GenericSock = GenericSock
      structure INetSock = INetSock
      structure Int16 = Int16
      structure Int16Array = Int16Array
      structure Int16Array2 = Int16Array2
      structure Int16ArraySlice = Int16ArraySlice
      structure Int16Vector = Int16Vector
      structure Int16VectorSlice = Int16VectorSlice
      structure Int2 = Int2
      structure Int3 = Int3
      structure Int4 = Int4
      structure Int5 = Int5
      structure Int6 = Int6
      structure Int7 = Int7
      structure Int8 = Int8
      structure Int9 = Int9
      structure Int10 = Int10
      structure Int11 = Int11
      structure Int12 = Int12
      structure Int13 = Int13
      structure Int14 = Int14
      structure Int15 = Int15
      structure Int16 = Int16
      structure Int17 = Int17
      structure Int18 = Int18
      structure Int19 = Int19
      structure Int20 = Int20
      structure Int21 = Int21
      structure Int22 = Int22
      structure Int23 = Int23
      structure Int24 = Int24
      structure Int25 = Int25
      structure Int26 = Int26
      structure Int27 = Int27
      structure Int28 = Int28
      structure Int29 = Int29
      structure Int30 = Int30
      structure Int31 = Int31
      structure Int32 = Int32
      structure Int32Array = Int32Array
      structure Int32Array2 = Int32Array2
      structure Int32ArraySlice = Int32ArraySlice
      structure Int32Vector = Int32Vector
      structure Int32VectorSlice = Int32VectorSlice
      structure Int64 = Int64
      structure Int64Array = Int64Array
      structure Int64Array2 = Int64Array2
      structure Int64ArraySlice = Int64ArraySlice
      structure Int64Vector = Int64Vector
      structure Int64VectorSlice = Int64VectorSlice
      structure Int8 = Int8
      structure Int8Array = Int8Array
      structure Int8Array2 = Int8Array2
      structure Int8ArraySlice = Int8ArraySlice
      structure Int8Vector = Int8Vector
      structure Int8VectorSlice = Int8VectorSlice
      structure IntArray = IntArray
      structure IntArray2 = IntArray2
      structure IntArraySlice = IntArraySlice
      structure IntInf = IntInf
      structure IntVector = IntVector
      structure IntVectorSlice = IntVectorSlice
      structure LargeIntArray = LargeIntArray
      structure LargeIntArray2 = LargeIntArray2
      structure LargeIntArraySlice = LargeIntArraySlice
      structure LargeIntVector = LargeIntVector
      structure LargeIntVectorSlice = LargeIntVectorSlice
      structure LargeRealArray = LargeRealArray
      structure LargeRealArray2 = LargeRealArray2
      structure LargeRealArraySlice = LargeRealArraySlice
      structure LargeRealVector = LargeRealVector
      structure LargeRealVectorSlice = LargeRealVectorSlice
      structure LargeWordArray = LargeWordArray
      structure LargeWordArray2 = LargeWordArray2
      structure LargeWordArraySlice = LargeWordArraySlice
      structure LargeWordVector = LargeWordVector
      structure LargeWordVectorSlice = LargeWordVectorSlice
      structure NetHostDB = NetHostDB
      structure NetProtDB = NetProtDB
      structure NetServDB = NetServDB
      structure PackReal32Big = PackReal32Big
      structure PackReal32Little = PackReal32Little
      structure PackReal64Big = PackReal64Big
      structure PackReal64Little = PackReal64Little
      structure PackRealBig = PackRealBig
      structure PackRealLittle = PackRealLittle
      structure PackWord32Big = PackWord32Big
      structure PackWord32Little = PackWord32Little
      structure Posix = Posix
      structure Real32 = Real32
      structure Real32Array = Real32Array
      structure Real32Array2 = Real32Array2
      structure Real32ArraySlice = Real32ArraySlice
      structure Real32Vector = Real32Vector
      structure Real32VectorSlice = Real32VectorSlice
      structure Real64 = Real64
      structure Real64Array = Real64Array
      structure Real64Array2 = Real64Array2
      structure Real64ArraySlice = Real64ArraySlice
      structure Real64Vector = Real64Vector
      structure Real64VectorSlice = Real64VectorSlice
      structure RealArray = RealArray
      structure RealArray2 = RealArray2
      structure RealArraySlice = RealArraySlice
      structure RealVector = RealVector
      structure RealVectorSlice = RealVectorSlice
      structure Socket = Socket
      structure SysWord = SysWord
      structure Unix = Unix
      structure UnixSock = UnixSock
(*
      structure WideChar = WideChar
      structure WideCharArray = WideCharArray
      structure WideCharArray2 = WideCharArray2
      structure WideCharArraySlice = WideCharArraySlice
      structure WideCharVector = WideCharVector
      structure WideCharVectorSlice = WideCharVectorSlice
      structure WideString = WideString
      structure WideSubstring = WideSubstring
      structure WideText = WideText
      structure WideTextPrimIO = WideTextPrimIO
*)
(*
      structure Windows = Windows
*)
      structure Word2 = Word2
      structure Word3 = Word3
      structure Word4 = Word4
      structure Word5 = Word5
      structure Word6 = Word6
      structure Word7 = Word7
      structure Word8 = Word8
      structure Word9 = Word9
      structure Word10 = Word10
      structure Word11 = Word11
      structure Word12 = Word12
      structure Word13 = Word13
      structure Word14 = Word14
      structure Word15 = Word15
      structure Word16 = Word16
      structure Word17 = Word17
      structure Word18 = Word18
      structure Word19 = Word19
      structure Word20 = Word20
      structure Word21 = Word21
      structure Word22 = Word22
      structure Word23 = Word23
      structure Word24 = Word24
      structure Word25 = Word25
      structure Word26 = Word26
      structure Word27 = Word27
      structure Word28 = Word28
      structure Word29 = Word29
      structure Word30 = Word30
      structure Word31 = Word31
      structure Word32 = Word32
      structure Word64 = Word64
      structure WordArray = WordArray
      structure WordArray2 = WordArray2
      structure WordArraySlice = WordArraySlice
      structure WordVector = WordVector
      structure WordVectorSlice = WordVectorSlice
      structure Word16 = Word16
      structure Word16Array = Word16Array
      structure Word16Array2 = Word16Array2
      structure Word16ArraySlice = Word16ArraySlice
      structure Word16Vector = Word16Vector
      structure Word16VectorSlice = Word16VectorSlice
      structure Word32Array = Word32Array
      structure Word32Array2 = Word32Array2
      structure Word32ArraySlice = Word32ArraySlice
      structure Word32Vector = Word32Vector
      structure Word32VectorSlice = Word32VectorSlice
      structure Word64Array = Word64Array
      structure Word64Array2 = Word64Array2
      structure Word64ArraySlice = Word64ArraySlice
      structure Word64Vector = Word64Vector
      structure Word64VectorSlice = Word64VectorSlice

      (* Non-standard structures *)
      structure SML90 = SML90
      structure MLton = MLton
      structure SMLofNJ = SMLofNJ
      structure Unsafe = Unsafe
	 
      open ArrayGlobal
	   BoolGlobal
	   CharGlobal
	   IntGlobal
	   GeneralGlobal
	   ListGlobal
	   OptionGlobal
	   RealGlobal
	   StringGlobal
	   RealGlobal
	   SubstringGlobal
	   TextIOGlobal
	   VectorGlobal
	   WordGlobal
      val real = real
      val op = = op =
      val op <> = op <>
      val vector = vector
      datatype ref = datatype ref
   end



1.1                  mlton/basis-library/libs/basis-extra/top-level/top-level.sml

Index: top-level.sml
===================================================================
local
   open BasisExtra
in
  structure SML90 = SML90
  structure MLton = MLton
  structure SMLofNJ = SMLofNJ
  structure Unsafe = Unsafe
end

_basis_done MLtonFFI



1.4       +8 -17     mlton/basis-library/libs/basis-none/top-level/basis.sig

Index: basis.sig
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/libs/basis-none/top-level/basis.sig,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- basis.sig	30 Jul 2004 19:07:58 -0000	1.3
+++ basis.sig	5 Aug 2004 00:36:48 -0000	1.4
@@ -1,19 +1,19 @@
 signature BASIS_NONE =
    sig
       (* Top-level types *)
-      eqtype unit
+      eqtype 'a array
+      datatype bool = datatype BasisExtra.bool
+      eqtype char
+      type exn
       eqtype int 
-      eqtype word 
+      datatype list = datatype BasisExtra.list
+      datatype ref = datatype BasisExtra.ref
       type real
-      eqtype char
       eqtype string
       type substring 
-      type exn
-      eqtype 'a array 
+      eqtype unit
       eqtype 'a vector
-      datatype ref = datatype ref
-      datatype bool = datatype bool
-      datatype list = datatype list
+      eqtype word 
 
       exception Bind
       exception Match
@@ -22,12 +22,3 @@
       val = : ''a * ''a -> bool
       val <> : ''a * ''a -> bool
    end
-   (* Top-level types *)
-   where type unit = unit
-   where type int = int
-   where type word = word
-   where type real = real
-   where type char = char
-   where type exn = exn
-   where type 'a array = 'a array
-   where type 'a vector = 'a vector



1.3       +1 -19     mlton/basis-library/libs/basis-none/top-level/basis.sml

Index: basis.sml
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/libs/basis-none/top-level/basis.sml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- basis.sml	30 Jul 2004 19:07:58 -0000	1.2
+++ basis.sml	5 Aug 2004 00:36:48 -0000	1.3
@@ -1,19 +1 @@
-structure BasisNone: BASIS_NONE =
-   struct
-      open ArrayGlobal
-	   BoolGlobal
-	   CharGlobal
-	   IntGlobal
-	   GeneralGlobal
-	   ListGlobal
-	   RealGlobal
-	   StringGlobal
-	   RealGlobal
-	   SubstringGlobal
-	   VectorGlobal
-	   WordGlobal
-
-      val op = = op =
-      val op <> = op <>
-      datatype ref = datatype ref
-   end
+structure BasisNone : BASIS_NONE = BasisExtra
\ No newline at end of file



1.32      +1 -3      mlton/basis-library/mlton/mlton.sig

Index: mlton.sig
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/mlton/mlton.sig,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- mlton.sig	28 Feb 2004 01:54:55 -0000	1.31
+++ mlton.sig	5 Aug 2004 00:36:48 -0000	1.32
@@ -5,9 +5,7 @@
  * MLton is released under the GNU General Public License (GPL).
  * Please see the file MLton-LICENSE for license information.
  *)
-type int = Int.int
-type word = Word.word
-   
+
 signature MLTON =
    sig
 (*      val cleanAtExit: unit -> unit *)



1.14      +4 -4      mlton/basis-library/sml-nj/sml-nj.sml

Index: sml-nj.sml
===================================================================
RCS file: /cvsroot/mlton/mlton/basis-library/sml-nj/sml-nj.sml,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- sml-nj.sml	28 Feb 2004 01:16:48 -0000	1.13
+++ sml-nj.sml	5 Aug 2004 00:36:49 -0000	1.14
@@ -9,7 +9,7 @@
    struct
       structure Cont =
 	 struct
-	    structure C = MLtonCont
+	    structure C = MLton.Cont
 
 	    type 'a cont = 'a C.t
 	    val callcc = C.callcc
@@ -34,11 +34,11 @@
 
       fun getAllArgs () = getCmdName () :: getArgs ()
 
-      val exnHistory = MLtonExn.history
+      val exnHistory = MLton.Exn.history
 
       fun exportFn (file: string, f) =
 	 let
-	    open MLtonWorld OS.Process
+	    open MLton.World OS.Process
 	 in
 	    case save (file ^ ".mlton") of
 	       Original => exit success
@@ -47,7 +47,7 @@
 
       fun exportML (f: string): bool =
 	 let
-	    open MLtonWorld
+	    open MLton.World
 	 in
 	    case save (f ^ ".mlton") of
 	       Clone => true



1.85      +7 -3      mlton/bin/regression

Index: regression
===================================================================
RCS file: /cvsroot/mlton/mlton/bin/regression,v
retrieving revision 1.84
retrieving revision 1.85
diff -u -r1.84 -r1.85
--- regression	4 Aug 2004 15:25:38 -0000	1.84
+++ regression	5 Aug 2004 00:36:49 -0000	1.85
@@ -55,7 +55,7 @@
 src=`cd $dir/.. && pwd`
 bin="$src/build/bin"
 mlton="$bin/mlton"
-flags="-disable-ann warnMatch -type-check true $flags"
+flags="-type-check true $flags"
 if [ $cross = 'yes' ]; then
 	flags="$flags -target $crossTarget -stop g"
 fi
@@ -86,7 +86,8 @@
 	exit 0
 fi
 
-for f in `ls *.sml`; do
+# for f in `ls *.sml`; do
+for f in exnHistory.sml exnHistory2.sml exnHistory3.sml; do
 	f=`basename $f .sml`
 	case "$f" in
 	serialize)
@@ -106,7 +107,10 @@
 		no)
 			mlb="/tmp/$$.mlb"
 			echo "\$(MLTON_ROOT)/basis/basis.mlb
-                              ann allowExport true, allowImport true, allowOverload true
+                              \$(MLTON_ROOT)/basis/mlton.mlb
+                              \$(MLTON_ROOT)/basis/sml-nj.mlb
+                              ann allowExport true, allowImport true, allowOverload true,
+                                  warnMatch false
                               in $src/regression/$f.sml end" >$mlb
 			$mlton $flags $extraFlags -output $f $mlb
 			rm $mlb



1.133     +1 -1      mlton/mlton/control/control.sml

Index: control.sml
===================================================================
RCS file: /cvsroot/mlton/mlton/mlton/control/control.sml,v
retrieving revision 1.132
retrieving revision 1.133
diff -u -r1.132 -r1.133
--- control.sml	4 Aug 2004 03:15:09 -0000	1.132
+++ control.sml	5 Aug 2004 00:36:49 -0000	1.133
@@ -31,7 +31,7 @@
 			toString = fn v => Layout.toString (Vector.layout
 							    String.layout v)}
    
-val basisLibs = ["basis-2002", "basis-2002-strict", "basis-1997", "basis-none"]
+val basisLibs = ["basis-2002", "basis-1997", "basis-none"]
    
 val basisLibrary = control {name = "basis library",
 			    default = "basis-2002",



1.8       +1 -0      mlton/mlton/front-end/import.cm

Index: import.cm
===================================================================
RCS file: /cvsroot/mlton/mlton/mlton/front-end/import.cm,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- import.cm	29 Jul 2004 15:55:27 -0000	1.7
+++ import.cm	5 Aug 2004 00:36:49 -0000	1.8
@@ -20,6 +20,7 @@
 structure IntInf
 structure Layout
 structure List
+structure Option
 structure OS
 structure Out
 structure Pervasive



1.7       +15 -3     mlton/mlton/front-end/mlb-front-end.fun

Index: mlb-front-end.fun
===================================================================
RCS file: /cvsroot/mlton/mlton/mlton/front-end/mlb-front-end.fun,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- mlb-front-end.fun	3 Aug 2004 21:22:14 -0000	1.6
+++ mlb-front-end.fun	5 Aug 2004 00:36:49 -0000	1.7
@@ -143,6 +143,19 @@
 	     fileUse = fileUse,
 	     relativize = relativize}
 	 end
+      val regularize =
+	 Trace.trace ("MLBFrontEnd.regularize", 
+		      fn {fileOrig, cwd, relativize} =>
+		      Layout.record
+		      [("fileOrig", File.layout fileOrig),
+		       ("cwd", Dir.layout cwd),
+		       ("relativize", Option.layout Dir.layout relativize)],
+		      fn {fileAbs, fileUse, relativize} =>
+		      Layout.record
+		      [("fileAbs", File.layout fileAbs),
+		       ("fileUse", File.layout fileUse),
+		       ("relativize", Option.layout Dir.layout relativize)])
+	 regularize
 
       fun lexAndParseProg {fileAbs: File.t, fileUse: File.t} =
 	 let
@@ -209,8 +222,7 @@
 	    else let
 		    val mlbExts = ["mlb"]
 		    val progExts = ["ML","fun","sig","sml"]
-		    fun err () =
-		       fail "has an invalid extension"
+		    fun err () = fail "has an unknown extension"
 		 in
 		    case File.extension fileUse of
 		       SOME s =>
@@ -239,7 +251,7 @@
 
       val cwd = Dir.current ()
       val relativize = SOME cwd
-      val state = {cwd = cwd, relativize = SOME cwd, seen = []}
+      val state = {cwd = cwd, relativize = relativize, seen = []}
       val lexAndParseFile = fn (f: File.t) =>
 	 (case lexAndParseProgOrMLB state (f, Region.bogus) of
 	     Ast.Basdec.MLB (_, _, basdec) => basdec



1.40      +10 -10    mlton/mlton/main/compile.fun

Index: compile.fun
===================================================================
RCS file: /cvsroot/mlton/mlton/mlton/main/compile.fun,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- compile.fun	4 Aug 2004 03:15:10 -0000	1.39
+++ compile.fun	5 Aug 2004 00:36:49 -0000	1.40
@@ -578,17 +578,17 @@
       let
 	 val basis =
 	    String.concat
-	    ["$(MLTON_ROOT)/basis/",!Control.basisLibrary,".mlb\n"]
+	    ["$(MLTON_ROOT)/basis/",!Control.basisLibrary,".mlb\n",
+	     "$(MLTON_ROOT)/basis/mlton.mlb\n",
+	     "$(MLTON_ROOT)/basis/sml-nj.mlb\n",
+	     "$(MLTON_ROOT)/basis/unsafe.mlb\n"]
 	 val s =
-	    if List.length input = 0
-	       then basis
-	       else 
-		  String.concat
-		  ["local\n",
-		   basis,
-		   "in\n",
-		   String.concat (List.separate(input, "\n")), "\n",
-		   "end\n"]
+	    String.concat
+	    ["local\n",
+	     basis,
+	     "in\n",
+	     String.concat (List.separate(input, "\n")), "\n",
+	     "end\n"]
       in
 	 String s
       end