diff --git a/Control/Applicative.hs b/Control/Applicative.hs
new file mode 100644
--- /dev/null
+++ b/Control/Applicative.hs
@@ -0,0 +1,2 @@
+module Control.Applicative (module X___) where
+import "base" Control.Applicative as X___
diff --git a/Control/Arrow.hs b/Control/Arrow.hs
new file mode 100644
--- /dev/null
+++ b/Control/Arrow.hs
@@ -0,0 +1,2 @@
+module Control.Arrow (module X___) where
+import "base" Control.Arrow as X___
diff --git a/Control/Category.hs b/Control/Category.hs
new file mode 100644
--- /dev/null
+++ b/Control/Category.hs
@@ -0,0 +1,2 @@
+module Control.Category (module X___) where
+import "base" Control.Category as X___
diff --git a/Control/Concurrent.hs b/Control/Concurrent.hs
new file mode 100644
--- /dev/null
+++ b/Control/Concurrent.hs
@@ -0,0 +1,2 @@
+module Control.Concurrent (module X___) where
+import "base" Control.Concurrent as X___
diff --git a/Control/Concurrent/Chan.hs b/Control/Concurrent/Chan.hs
new file mode 100644
--- /dev/null
+++ b/Control/Concurrent/Chan.hs
@@ -0,0 +1,2 @@
+module Control.Concurrent.Chan (module X___) where
+import "base" Control.Concurrent.Chan as X___
diff --git a/Control/Concurrent/MVar.hs b/Control/Concurrent/MVar.hs
new file mode 100644
--- /dev/null
+++ b/Control/Concurrent/MVar.hs
@@ -0,0 +1,2 @@
+module Control.Concurrent.MVar (module X___) where
+import "base" Control.Concurrent.MVar as X___
diff --git a/Control/Concurrent/QSem.hs b/Control/Concurrent/QSem.hs
new file mode 100644
--- /dev/null
+++ b/Control/Concurrent/QSem.hs
@@ -0,0 +1,2 @@
+module Control.Concurrent.QSem (module X___) where
+import "base" Control.Concurrent.QSem as X___
diff --git a/Control/Concurrent/QSemN.hs b/Control/Concurrent/QSemN.hs
new file mode 100644
--- /dev/null
+++ b/Control/Concurrent/QSemN.hs
@@ -0,0 +1,2 @@
+module Control.Concurrent.QSemN (module X___) where
+import "base" Control.Concurrent.QSemN as X___
diff --git a/Control/Concurrent/SampleVar.hs b/Control/Concurrent/SampleVar.hs
new file mode 100644
--- /dev/null
+++ b/Control/Concurrent/SampleVar.hs
@@ -0,0 +1,2 @@
+module Control.Concurrent.SampleVar (module X___) where
+import "base" Control.Concurrent.SampleVar as X___
diff --git a/Control/Exception.hs b/Control/Exception.hs
new file mode 100644
--- /dev/null
+++ b/Control/Exception.hs
@@ -0,0 +1,2 @@
+module Control.Exception (module Control.OldException) where
+import Control.OldException
diff --git a/Control/Monad.hs b/Control/Monad.hs
new file mode 100644
--- /dev/null
+++ b/Control/Monad.hs
@@ -0,0 +1,2 @@
+module Control.Monad (module X___) where
+import "base" Control.Monad as X___
diff --git a/Control/Monad/Fix.hs b/Control/Monad/Fix.hs
new file mode 100644
--- /dev/null
+++ b/Control/Monad/Fix.hs
@@ -0,0 +1,2 @@
+module Control.Monad.Fix (module X___) where
+import "base" Control.Monad.Fix as X___
diff --git a/Control/Monad/Instances.hs b/Control/Monad/Instances.hs
new file mode 100644
--- /dev/null
+++ b/Control/Monad/Instances.hs
@@ -0,0 +1,2 @@
+module Control.Monad.Instances (module X___) where
+import "base" Control.Monad.Instances as X___
diff --git a/Control/Monad/ST.hs b/Control/Monad/ST.hs
new file mode 100644
--- /dev/null
+++ b/Control/Monad/ST.hs
@@ -0,0 +1,2 @@
+module Control.Monad.ST (module X___) where
+import "base" Control.Monad.ST as X___
diff --git a/Control/Monad/ST/Lazy.hs b/Control/Monad/ST/Lazy.hs
new file mode 100644
--- /dev/null
+++ b/Control/Monad/ST/Lazy.hs
@@ -0,0 +1,2 @@
+module Control.Monad.ST.Lazy (module X___) where
+import "base" Control.Monad.ST.Lazy as X___
diff --git a/Control/Monad/ST/Strict.hs b/Control/Monad/ST/Strict.hs
new file mode 100644
--- /dev/null
+++ b/Control/Monad/ST/Strict.hs
@@ -0,0 +1,2 @@
+module Control.Monad.ST.Strict (module X___) where
+import "base" Control.Monad.ST.Strict as X___
diff --git a/Data/Bits.hs b/Data/Bits.hs
new file mode 100644
--- /dev/null
+++ b/Data/Bits.hs
@@ -0,0 +1,2 @@
+module Data.Bits (module X___) where
+import "base" Data.Bits as X___
diff --git a/Data/Bool.hs b/Data/Bool.hs
new file mode 100644
--- /dev/null
+++ b/Data/Bool.hs
@@ -0,0 +1,2 @@
+module Data.Bool (module X___) where
+import "base" Data.Bool as X___
diff --git a/Data/Char.hs b/Data/Char.hs
new file mode 100644
--- /dev/null
+++ b/Data/Char.hs
@@ -0,0 +1,2 @@
+module Data.Char (module X___) where
+import "base" Data.Char as X___
diff --git a/Data/Complex.hs b/Data/Complex.hs
new file mode 100644
--- /dev/null
+++ b/Data/Complex.hs
@@ -0,0 +1,2 @@
+module Data.Complex (module X___) where
+import "base" Data.Complex as X___
diff --git a/Data/Dynamic.hs b/Data/Dynamic.hs
new file mode 100644
--- /dev/null
+++ b/Data/Dynamic.hs
@@ -0,0 +1,2 @@
+module Data.Dynamic (module X___) where
+import "base" Data.Dynamic as X___
diff --git a/Data/Either.hs b/Data/Either.hs
new file mode 100644
--- /dev/null
+++ b/Data/Either.hs
@@ -0,0 +1,2 @@
+module Data.Either (module X___) where
+import "base" Data.Either as X___
diff --git a/Data/Eq.hs b/Data/Eq.hs
new file mode 100644
--- /dev/null
+++ b/Data/Eq.hs
@@ -0,0 +1,2 @@
+module Data.Eq (module X___) where
+import "base" Data.Eq as X___
diff --git a/Data/Fixed.hs b/Data/Fixed.hs
new file mode 100644
--- /dev/null
+++ b/Data/Fixed.hs
@@ -0,0 +1,2 @@
+module Data.Fixed (module X___) where
+import "base" Data.Fixed as X___
diff --git a/Data/Foldable.hs b/Data/Foldable.hs
new file mode 100644
--- /dev/null
+++ b/Data/Foldable.hs
@@ -0,0 +1,2 @@
+module Data.Foldable (module X___) where
+import "base" Data.Foldable as X___
diff --git a/Data/Function.hs b/Data/Function.hs
new file mode 100644
--- /dev/null
+++ b/Data/Function.hs
@@ -0,0 +1,2 @@
+module Data.Function (module X___) where
+import "base" Data.Function as X___
diff --git a/Data/Generics.hs b/Data/Generics.hs
new file mode 100644
--- /dev/null
+++ b/Data/Generics.hs
@@ -0,0 +1,2 @@
+module Data.Generics (module X___) where
+import "syb" Data.Generics as X___
diff --git a/Data/Generics/Aliases.hs b/Data/Generics/Aliases.hs
new file mode 100644
--- /dev/null
+++ b/Data/Generics/Aliases.hs
@@ -0,0 +1,2 @@
+module Data.Generics.Aliases (module X___) where
+import "syb" Data.Generics.Aliases as X___
diff --git a/Data/Generics/Basics.hs b/Data/Generics/Basics.hs
new file mode 100644
--- /dev/null
+++ b/Data/Generics/Basics.hs
@@ -0,0 +1,2 @@
+module Data.Generics.Basics (module X___) where
+import "syb" Data.Generics.Basics as X___
diff --git a/Data/Generics/Instances.hs b/Data/Generics/Instances.hs
new file mode 100644
--- /dev/null
+++ b/Data/Generics/Instances.hs
@@ -0,0 +1,2 @@
+module Data.Generics.Instances () where
+import "syb" Data.Generics.Instances as X___ ()
diff --git a/Data/Generics/Schemes.hs b/Data/Generics/Schemes.hs
new file mode 100644
--- /dev/null
+++ b/Data/Generics/Schemes.hs
@@ -0,0 +1,2 @@
+module Data.Generics.Schemes (module X___) where
+import "syb" Data.Generics.Schemes as X___
diff --git a/Data/Generics/Text.hs b/Data/Generics/Text.hs
new file mode 100644
--- /dev/null
+++ b/Data/Generics/Text.hs
@@ -0,0 +1,2 @@
+module Data.Generics.Text (module X___) where
+import "syb" Data.Generics.Text as X___
diff --git a/Data/Generics/Twins.hs b/Data/Generics/Twins.hs
new file mode 100644
--- /dev/null
+++ b/Data/Generics/Twins.hs
@@ -0,0 +1,2 @@
+module Data.Generics.Twins (module X___) where
+import "syb" Data.Generics.Twins as X___
diff --git a/Data/HashTable.hs b/Data/HashTable.hs
new file mode 100644
--- /dev/null
+++ b/Data/HashTable.hs
@@ -0,0 +1,2 @@
+module Data.HashTable (module X___) where
+import "base" Data.HashTable as X___
diff --git a/Data/IORef.hs b/Data/IORef.hs
new file mode 100644
--- /dev/null
+++ b/Data/IORef.hs
@@ -0,0 +1,2 @@
+module Data.IORef (module X___) where
+import "base" Data.IORef as X___
diff --git a/Data/Int.hs b/Data/Int.hs
new file mode 100644
--- /dev/null
+++ b/Data/Int.hs
@@ -0,0 +1,2 @@
+module Data.Int (module X___) where
+import "base" Data.Int as X___
diff --git a/Data/Ix.hs b/Data/Ix.hs
new file mode 100644
--- /dev/null
+++ b/Data/Ix.hs
@@ -0,0 +1,2 @@
+module Data.Ix (module X___) where
+import "base" Data.Ix as X___
diff --git a/Data/List.hs b/Data/List.hs
new file mode 100644
--- /dev/null
+++ b/Data/List.hs
@@ -0,0 +1,2 @@
+module Data.List (module X___) where
+import "base" Data.List as X___
diff --git a/Data/Maybe.hs b/Data/Maybe.hs
new file mode 100644
--- /dev/null
+++ b/Data/Maybe.hs
@@ -0,0 +1,2 @@
+module Data.Maybe (module X___) where
+import "base" Data.Maybe as X___
diff --git a/Data/Monoid.hs b/Data/Monoid.hs
new file mode 100644
--- /dev/null
+++ b/Data/Monoid.hs
@@ -0,0 +1,2 @@
+module Data.Monoid (module X___) where
+import "base" Data.Monoid as X___
diff --git a/Data/Ord.hs b/Data/Ord.hs
new file mode 100644
--- /dev/null
+++ b/Data/Ord.hs
@@ -0,0 +1,2 @@
+module Data.Ord (module X___) where
+import "base" Data.Ord as X___
diff --git a/Data/Ratio.hs b/Data/Ratio.hs
new file mode 100644
--- /dev/null
+++ b/Data/Ratio.hs
@@ -0,0 +1,2 @@
+module Data.Ratio (module X___) where
+import "base" Data.Ratio as X___
diff --git a/Data/STRef.hs b/Data/STRef.hs
new file mode 100644
--- /dev/null
+++ b/Data/STRef.hs
@@ -0,0 +1,2 @@
+module Data.STRef (module X___) where
+import "base" Data.STRef as X___
diff --git a/Data/STRef/Lazy.hs b/Data/STRef/Lazy.hs
new file mode 100644
--- /dev/null
+++ b/Data/STRef/Lazy.hs
@@ -0,0 +1,2 @@
+module Data.STRef.Lazy (module X___) where
+import "base" Data.STRef.Lazy as X___
diff --git a/Data/STRef/Strict.hs b/Data/STRef/Strict.hs
new file mode 100644
--- /dev/null
+++ b/Data/STRef/Strict.hs
@@ -0,0 +1,2 @@
+module Data.STRef.Strict (module X___) where
+import "base" Data.STRef.Strict as X___
diff --git a/Data/String.hs b/Data/String.hs
new file mode 100644
--- /dev/null
+++ b/Data/String.hs
@@ -0,0 +1,2 @@
+module Data.String (module X___) where
+import "base" Data.String as X___
diff --git a/Data/Traversable.hs b/Data/Traversable.hs
new file mode 100644
--- /dev/null
+++ b/Data/Traversable.hs
@@ -0,0 +1,2 @@
+module Data.Traversable (module X___) where
+import "base" Data.Traversable as X___
diff --git a/Data/Tuple.hs b/Data/Tuple.hs
new file mode 100644
--- /dev/null
+++ b/Data/Tuple.hs
@@ -0,0 +1,2 @@
+module Data.Tuple (module X___) where
+import "base" Data.Tuple as X___
diff --git a/Data/Typeable.hs b/Data/Typeable.hs
new file mode 100644
--- /dev/null
+++ b/Data/Typeable.hs
@@ -0,0 +1,2 @@
+module Data.Typeable (module X___) where
+import "base" Data.Typeable as X___
diff --git a/Data/Unique.hs b/Data/Unique.hs
new file mode 100644
--- /dev/null
+++ b/Data/Unique.hs
@@ -0,0 +1,2 @@
+module Data.Unique (module X___) where
+import "base" Data.Unique as X___
diff --git a/Data/Version.hs b/Data/Version.hs
new file mode 100644
--- /dev/null
+++ b/Data/Version.hs
@@ -0,0 +1,2 @@
+module Data.Version (module X___) where
+import "base" Data.Version as X___
diff --git a/Data/Word.hs b/Data/Word.hs
new file mode 100644
--- /dev/null
+++ b/Data/Word.hs
@@ -0,0 +1,2 @@
+module Data.Word (module X___) where
+import "base" Data.Word as X___
diff --git a/Debug/Trace.hs b/Debug/Trace.hs
new file mode 100644
--- /dev/null
+++ b/Debug/Trace.hs
@@ -0,0 +1,2 @@
+module Debug.Trace (module X___) where
+import "base" Debug.Trace as X___
diff --git a/Foreign.hs b/Foreign.hs
new file mode 100644
--- /dev/null
+++ b/Foreign.hs
@@ -0,0 +1,2 @@
+module Foreign (module X___) where
+import "base" Foreign as X___
diff --git a/Foreign/C.hs b/Foreign/C.hs
new file mode 100644
--- /dev/null
+++ b/Foreign/C.hs
@@ -0,0 +1,2 @@
+module Foreign.C (module X___) where
+import "base" Foreign.C as X___
diff --git a/Foreign/C/Error.hs b/Foreign/C/Error.hs
new file mode 100644
--- /dev/null
+++ b/Foreign/C/Error.hs
@@ -0,0 +1,2 @@
+module Foreign.C.Error (module X___) where
+import "base" Foreign.C.Error as X___
diff --git a/Foreign/C/String.hs b/Foreign/C/String.hs
new file mode 100644
--- /dev/null
+++ b/Foreign/C/String.hs
@@ -0,0 +1,2 @@
+module Foreign.C.String (module X___) where
+import "base" Foreign.C.String as X___
diff --git a/Foreign/C/Types.hs b/Foreign/C/Types.hs
new file mode 100644
--- /dev/null
+++ b/Foreign/C/Types.hs
@@ -0,0 +1,2 @@
+module Foreign.C.Types (module X___) where
+import "base" Foreign.C.Types as X___
diff --git a/Foreign/Concurrent.hs b/Foreign/Concurrent.hs
new file mode 100644
--- /dev/null
+++ b/Foreign/Concurrent.hs
@@ -0,0 +1,2 @@
+module Foreign.Concurrent (module X___) where
+import "base" Foreign.Concurrent as X___
diff --git a/Foreign/ForeignPtr.hs b/Foreign/ForeignPtr.hs
new file mode 100644
--- /dev/null
+++ b/Foreign/ForeignPtr.hs
@@ -0,0 +1,2 @@
+module Foreign.ForeignPtr (module X___) where
+import "base" Foreign.ForeignPtr as X___
diff --git a/Foreign/Marshal.hs b/Foreign/Marshal.hs
new file mode 100644
--- /dev/null
+++ b/Foreign/Marshal.hs
@@ -0,0 +1,2 @@
+module Foreign.Marshal (module X___) where
+import "base" Foreign.Marshal as X___
diff --git a/Foreign/Marshal/Alloc.hs b/Foreign/Marshal/Alloc.hs
new file mode 100644
--- /dev/null
+++ b/Foreign/Marshal/Alloc.hs
@@ -0,0 +1,2 @@
+module Foreign.Marshal.Alloc (module X___) where
+import "base" Foreign.Marshal.Alloc as X___
diff --git a/Foreign/Marshal/Array.hs b/Foreign/Marshal/Array.hs
new file mode 100644
--- /dev/null
+++ b/Foreign/Marshal/Array.hs
@@ -0,0 +1,2 @@
+module Foreign.Marshal.Array (module X___) where
+import "base" Foreign.Marshal.Array as X___
diff --git a/Foreign/Marshal/Error.hs b/Foreign/Marshal/Error.hs
new file mode 100644
--- /dev/null
+++ b/Foreign/Marshal/Error.hs
@@ -0,0 +1,2 @@
+module Foreign.Marshal.Error (module X___) where
+import "base" Foreign.Marshal.Error as X___
diff --git a/Foreign/Marshal/Pool.hs b/Foreign/Marshal/Pool.hs
new file mode 100644
--- /dev/null
+++ b/Foreign/Marshal/Pool.hs
@@ -0,0 +1,2 @@
+module Foreign.Marshal.Pool (module X___) where
+import "base" Foreign.Marshal.Pool as X___
diff --git a/Foreign/Marshal/Utils.hs b/Foreign/Marshal/Utils.hs
new file mode 100644
--- /dev/null
+++ b/Foreign/Marshal/Utils.hs
@@ -0,0 +1,2 @@
+module Foreign.Marshal.Utils (module X___) where
+import "base" Foreign.Marshal.Utils as X___
diff --git a/Foreign/Ptr.hs b/Foreign/Ptr.hs
new file mode 100644
--- /dev/null
+++ b/Foreign/Ptr.hs
@@ -0,0 +1,2 @@
+module Foreign.Ptr (module X___) where
+import "base" Foreign.Ptr as X___
diff --git a/Foreign/StablePtr.hs b/Foreign/StablePtr.hs
new file mode 100644
--- /dev/null
+++ b/Foreign/StablePtr.hs
@@ -0,0 +1,2 @@
+module Foreign.StablePtr (module X___) where
+import "base" Foreign.StablePtr as X___
diff --git a/Foreign/Storable.hs b/Foreign/Storable.hs
new file mode 100644
--- /dev/null
+++ b/Foreign/Storable.hs
@@ -0,0 +1,2 @@
+module Foreign.Storable (module X___) where
+import "base" Foreign.Storable as X___
diff --git a/GHC/Arr.hs b/GHC/Arr.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Arr.hs
@@ -0,0 +1,2 @@
+module GHC.Arr (module X___) where
+import "base" GHC.Arr as X___
diff --git a/GHC/Base.hs b/GHC/Base.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Base.hs
@@ -0,0 +1,2 @@
+module GHC.Base (module X___) where
+import "base" GHC.Base as X___
diff --git a/GHC/Conc.hs b/GHC/Conc.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Conc.hs
@@ -0,0 +1,2 @@
+module GHC.Conc (module X___) where
+import "base" GHC.Conc as X___
diff --git a/GHC/ConsoleHandler.hs b/GHC/ConsoleHandler.hs
new file mode 100644
--- /dev/null
+++ b/GHC/ConsoleHandler.hs
@@ -0,0 +1,2 @@
+module GHC.ConsoleHandler ({- empty: module X___ -}) where
+import "base" GHC.ConsoleHandler as X___ ()
diff --git a/GHC/Desugar.hs b/GHC/Desugar.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Desugar.hs
@@ -0,0 +1,2 @@
+module GHC.Desugar (module X___) where
+import "base" GHC.Desugar as X___
diff --git a/GHC/Dotnet.hs b/GHC/Dotnet.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Dotnet.hs
@@ -0,0 +1,1 @@
+module GHC.Dotnet () where
diff --git a/GHC/Enum.hs b/GHC/Enum.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Enum.hs
@@ -0,0 +1,2 @@
+module GHC.Enum (module X___) where
+import "base" GHC.Enum as X___
diff --git a/GHC/Environment.hs b/GHC/Environment.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Environment.hs
@@ -0,0 +1,2 @@
+module GHC.Environment (module X___) where
+import "base" GHC.Environment as X___
diff --git a/GHC/Err.hs b/GHC/Err.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Err.hs
@@ -0,0 +1,2 @@
+module GHC.Err (module X___) where
+import "base" GHC.Err as X___
diff --git a/GHC/Exception.hs b/GHC/Exception.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Exception.hs
@@ -0,0 +1,2 @@
+module GHC.Exception (module X___) where
+import "base" GHC.Exception as X___
diff --git a/GHC/Exts.hs b/GHC/Exts.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Exts.hs
@@ -0,0 +1,2 @@
+module GHC.Exts (module X___) where
+import "base" GHC.Exts as X___
diff --git a/GHC/Float.hs b/GHC/Float.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Float.hs
@@ -0,0 +1,2 @@
+module GHC.Float (module X___) where
+import "base" GHC.Float as X___
diff --git a/GHC/ForeignPtr.hs b/GHC/ForeignPtr.hs
new file mode 100644
--- /dev/null
+++ b/GHC/ForeignPtr.hs
@@ -0,0 +1,2 @@
+module GHC.ForeignPtr (module X___) where
+import "base" GHC.ForeignPtr as X___
diff --git a/GHC/Handle.hs b/GHC/Handle.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Handle.hs
@@ -0,0 +1,2 @@
+module GHC.Handle (module X___) where
+import "base" GHC.Handle as X___
diff --git a/GHC/IO.hs b/GHC/IO.hs
new file mode 100644
--- /dev/null
+++ b/GHC/IO.hs
@@ -0,0 +1,2 @@
+module GHC.IO (module X___) where
+import "base" GHC.IO as X___
diff --git a/GHC/IOBase.hs b/GHC/IOBase.hs
new file mode 100644
--- /dev/null
+++ b/GHC/IOBase.hs
@@ -0,0 +1,2 @@
+module GHC.IOBase (module X___) where
+import "base" GHC.IOBase as X___
diff --git a/GHC/Int.hs b/GHC/Int.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Int.hs
@@ -0,0 +1,2 @@
+module GHC.Int (module X___) where
+import "base" GHC.Int as X___
diff --git a/GHC/List.hs b/GHC/List.hs
new file mode 100644
--- /dev/null
+++ b/GHC/List.hs
@@ -0,0 +1,2 @@
+module GHC.List (module X___) where
+import "base" GHC.List as X___
diff --git a/GHC/Num.hs b/GHC/Num.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Num.hs
@@ -0,0 +1,2 @@
+module GHC.Num (module X___) where
+import "base" GHC.Num as X___
diff --git a/GHC/PArr.hs b/GHC/PArr.hs
new file mode 100644
--- /dev/null
+++ b/GHC/PArr.hs
@@ -0,0 +1,2 @@
+module GHC.PArr (module X___) where
+import "base" GHC.PArr as X___
diff --git a/GHC/Pack.hs b/GHC/Pack.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Pack.hs
@@ -0,0 +1,2 @@
+module GHC.Pack (module X___) where
+import "base" GHC.Pack as X___
diff --git a/GHC/Ptr.hs b/GHC/Ptr.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Ptr.hs
@@ -0,0 +1,2 @@
+module GHC.Ptr (module X___) where
+import "base" GHC.Ptr as X___
diff --git a/GHC/Read.hs b/GHC/Read.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Read.hs
@@ -0,0 +1,2 @@
+module GHC.Read (module X___) where
+import "base" GHC.Read as X___
diff --git a/GHC/Real.hs b/GHC/Real.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Real.hs
@@ -0,0 +1,2 @@
+module GHC.Real (module X___) where
+import "base" GHC.Real as X___
diff --git a/GHC/ST.hs b/GHC/ST.hs
new file mode 100644
--- /dev/null
+++ b/GHC/ST.hs
@@ -0,0 +1,2 @@
+module GHC.ST (module X___) where
+import "base" GHC.ST as X___
diff --git a/GHC/STRef.hs b/GHC/STRef.hs
new file mode 100644
--- /dev/null
+++ b/GHC/STRef.hs
@@ -0,0 +1,2 @@
+module GHC.STRef (module X___) where
+import "base" GHC.STRef as X___
diff --git a/GHC/Show.hs b/GHC/Show.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Show.hs
@@ -0,0 +1,2 @@
+module GHC.Show (module X___) where
+import "base" GHC.Show as X___
diff --git a/GHC/Stable.hs b/GHC/Stable.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Stable.hs
@@ -0,0 +1,2 @@
+module GHC.Stable (module X___) where
+import "base" GHC.Stable as X___
diff --git a/GHC/Storable.hs b/GHC/Storable.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Storable.hs
@@ -0,0 +1,2 @@
+module GHC.Storable (module X___) where
+import "base" GHC.Storable as X___
diff --git a/GHC/TopHandler.hs b/GHC/TopHandler.hs
new file mode 100644
--- /dev/null
+++ b/GHC/TopHandler.hs
@@ -0,0 +1,2 @@
+module GHC.TopHandler (module X___) where
+import "base" GHC.TopHandler as X___
diff --git a/GHC/Unicode.hs b/GHC/Unicode.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Unicode.hs
@@ -0,0 +1,2 @@
+module GHC.Unicode (module X___) where
+import "base" GHC.Unicode as X___
diff --git a/GHC/Weak.hs b/GHC/Weak.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Weak.hs
@@ -0,0 +1,2 @@
+module GHC.Weak (module X___) where
+import "base" GHC.Weak as X___
diff --git a/GHC/Word.hs b/GHC/Word.hs
new file mode 100644
--- /dev/null
+++ b/GHC/Word.hs
@@ -0,0 +1,2 @@
+module GHC.Word (module X___) where
+import "base" GHC.Word as X___
diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,83 @@
+This library (libraries/base) is derived from code from several
+sources: 
+
+  * Code from the GHC project which is largely (c) The University of
+    Glasgow, and distributable under a BSD-style license (see below),
+
+  * Code from the Haskell 98 Report which is (c) Simon Peyton Jones
+    and freely redistributable (but see the full license for
+    restrictions).
+
+  * Code from the Haskell Foreign Function Interface specification,
+    which is (c) Manuel M. T. Chakravarty and freely redistributable
+    (but see the full license for restrictions).
+
+The full text of these licenses is reproduced below.  All of the
+licenses are BSD-style or compatible.
+
+-----------------------------------------------------------------------------
+
+The Glasgow Haskell Compiler License
+
+Copyright 2004, The University Court of the University of Glasgow. 
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+ 
+- Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+ 
+- Neither name of the University nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission. 
+
+THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+-----------------------------------------------------------------------------
+
+Code derived from the document "Report on the Programming Language
+Haskell 98", is distributed under the following license:
+
+  Copyright (c) 2002 Simon Peyton Jones
+
+  The authors intend this Report to belong to the entire Haskell
+  community, and so we grant permission to copy and distribute it for
+  any purpose, provided that it is reproduced in its entirety,
+  including this Notice.  Modified versions of this Report may also be
+  copied and distributed for any purpose, provided that the modified
+  version is clearly presented as such, and that it does not claim to
+  be a definition of the Haskell 98 Language.
+
+-----------------------------------------------------------------------------
+
+Code derived from the document "The Haskell 98 Foreign Function
+Interface, An Addendum to the Haskell 98 Report" is distributed under
+the following license:
+
+  Copyright (c) 2002 Manuel M. T. Chakravarty
+
+  The authors intend this Report to belong to the entire Haskell
+  community, and so we grant permission to copy and distribute it for
+  any purpose, provided that it is reproduced in its entirety,
+  including this Notice.  Modified versions of this Report may also be
+  copied and distributed for any purpose, provided that the modified
+  version is clearly presented as such, and that it does not claim to
+  be a definition of the Haskell 98 Foreign Function Interface.
+
+-----------------------------------------------------------------------------
diff --git a/Numeric.hs b/Numeric.hs
new file mode 100644
--- /dev/null
+++ b/Numeric.hs
@@ -0,0 +1,2 @@
+module Numeric (module X___) where
+import "base" Numeric as X___
diff --git a/Prelude.hs b/Prelude.hs
new file mode 100644
--- /dev/null
+++ b/Prelude.hs
@@ -0,0 +1,3 @@
+{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+module Prelude (module X___) where
+import "base" Prelude as X___
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/System/CPUTime.hs b/System/CPUTime.hs
new file mode 100644
--- /dev/null
+++ b/System/CPUTime.hs
@@ -0,0 +1,2 @@
+module System.CPUTime (module X___) where
+import "base" System.CPUTime as X___
diff --git a/System/Console/GetOpt.hs b/System/Console/GetOpt.hs
new file mode 100644
--- /dev/null
+++ b/System/Console/GetOpt.hs
@@ -0,0 +1,2 @@
+module System.Console.GetOpt (module X___) where
+import "base" System.Console.GetOpt as X___
diff --git a/System/Environment.hs b/System/Environment.hs
new file mode 100644
--- /dev/null
+++ b/System/Environment.hs
@@ -0,0 +1,2 @@
+module System.Environment (module X___) where
+import "base" System.Environment as X___
diff --git a/System/Exit.hs b/System/Exit.hs
new file mode 100644
--- /dev/null
+++ b/System/Exit.hs
@@ -0,0 +1,2 @@
+module System.Exit (module X___) where
+import "base" System.Exit as X___
diff --git a/System/IO.hs b/System/IO.hs
new file mode 100644
--- /dev/null
+++ b/System/IO.hs
@@ -0,0 +1,2 @@
+module System.IO (module X___) where
+import "base" System.IO as X___
diff --git a/System/IO/Error.hs b/System/IO/Error.hs
new file mode 100644
--- /dev/null
+++ b/System/IO/Error.hs
@@ -0,0 +1,2 @@
+module System.IO.Error (module X___) where
+import "base" System.IO.Error as X___
diff --git a/System/IO/Unsafe.hs b/System/IO/Unsafe.hs
new file mode 100644
--- /dev/null
+++ b/System/IO/Unsafe.hs
@@ -0,0 +1,2 @@
+module System.IO.Unsafe (module X___) where
+import "base" System.IO.Unsafe as X___
diff --git a/System/Info.hs b/System/Info.hs
new file mode 100644
--- /dev/null
+++ b/System/Info.hs
@@ -0,0 +1,2 @@
+module System.Info (module X___) where
+import "base" System.Info as X___
diff --git a/System/Mem.hs b/System/Mem.hs
new file mode 100644
--- /dev/null
+++ b/System/Mem.hs
@@ -0,0 +1,2 @@
+module System.Mem (module X___) where
+import "base" System.Mem as X___
diff --git a/System/Mem/StableName.hs b/System/Mem/StableName.hs
new file mode 100644
--- /dev/null
+++ b/System/Mem/StableName.hs
@@ -0,0 +1,2 @@
+module System.Mem.StableName (module X___) where
+import "base" System.Mem.StableName as X___
diff --git a/System/Mem/Weak.hs b/System/Mem/Weak.hs
new file mode 100644
--- /dev/null
+++ b/System/Mem/Weak.hs
@@ -0,0 +1,2 @@
+module System.Mem.Weak (module X___) where
+import "base" System.Mem.Weak as X___
diff --git a/System/Posix/Internals.hs b/System/Posix/Internals.hs
new file mode 100644
--- /dev/null
+++ b/System/Posix/Internals.hs
@@ -0,0 +1,2 @@
+module System.Posix.Internals (module X___) where
+import "base" System.Posix.Internals as X___
diff --git a/System/Posix/Types.hs b/System/Posix/Types.hs
new file mode 100644
--- /dev/null
+++ b/System/Posix/Types.hs
@@ -0,0 +1,2 @@
+module System.Posix.Types (module X___) where
+import "base" System.Posix.Types as X___
diff --git a/System/Timeout.hs b/System/Timeout.hs
new file mode 100644
--- /dev/null
+++ b/System/Timeout.hs
@@ -0,0 +1,2 @@
+module System.Timeout (module X___) where
+import "base" System.Timeout as X___
diff --git a/Text/ParserCombinators/ReadP.hs b/Text/ParserCombinators/ReadP.hs
new file mode 100644
--- /dev/null
+++ b/Text/ParserCombinators/ReadP.hs
@@ -0,0 +1,2 @@
+module Text.ParserCombinators.ReadP (module X___) where
+import "base" Text.ParserCombinators.ReadP as X___
diff --git a/Text/ParserCombinators/ReadPrec.hs b/Text/ParserCombinators/ReadPrec.hs
new file mode 100644
--- /dev/null
+++ b/Text/ParserCombinators/ReadPrec.hs
@@ -0,0 +1,2 @@
+module Text.ParserCombinators.ReadPrec (module X___) where
+import "base" Text.ParserCombinators.ReadPrec as X___
diff --git a/Text/Printf.hs b/Text/Printf.hs
new file mode 100644
--- /dev/null
+++ b/Text/Printf.hs
@@ -0,0 +1,2 @@
+module Text.Printf (module X___) where
+import "base" Text.Printf as X___
diff --git a/Text/Read.hs b/Text/Read.hs
new file mode 100644
--- /dev/null
+++ b/Text/Read.hs
@@ -0,0 +1,2 @@
+module Text.Read (module X___) where
+import "base" Text.Read as X___
diff --git a/Text/Read/Lex.hs b/Text/Read/Lex.hs
new file mode 100644
--- /dev/null
+++ b/Text/Read/Lex.hs
@@ -0,0 +1,2 @@
+module Text.Read.Lex (module X___) where
+import "base" Text.Read.Lex as X___
diff --git a/Text/Show.hs b/Text/Show.hs
new file mode 100644
--- /dev/null
+++ b/Text/Show.hs
@@ -0,0 +1,2 @@
+module Text.Show (module X___) where
+import "base" Text.Show as X___
diff --git a/Text/Show/Functions.hs b/Text/Show/Functions.hs
new file mode 100644
--- /dev/null
+++ b/Text/Show/Functions.hs
@@ -0,0 +1,2 @@
+module Text.Show.Functions ({- empty: module X___ -}) where
+import "base" Text.Show.Functions as X___ ()
diff --git a/Unsafe/Coerce.hs b/Unsafe/Coerce.hs
new file mode 100644
--- /dev/null
+++ b/Unsafe/Coerce.hs
@@ -0,0 +1,2 @@
+module Unsafe.Coerce (module X___) where
+import "base" Unsafe.Coerce as X___
diff --git a/base.cabal b/base.cabal
new file mode 100644
--- /dev/null
+++ b/base.cabal
@@ -0,0 +1,154 @@
+name:           base
+version:        3.0.3.1
+license:        BSD3
+license-file:   LICENSE
+maintainer:     libraries@haskell.org
+synopsis:       Basic libraries (backwards-compatibility version)
+description:
+    This is a backwards-compatible version of the base package.
+    It depends on a later version of base, and was probably supplied
+    with your compiler when it was installed.
+    
+cabal-version:  >=1.2
+build-type: Simple
+
+Library {
+    build-depends: base       >= 4.0 && < 4.2,
+                   syb        >= 0.1 && < 0.2
+    extensions: PackageImports
+
+    if impl(ghc < 6.9) {
+        buildable: False
+    }
+
+    if impl(ghc) {
+        exposed-modules:
+            Data.Generics,
+            Data.Generics.Aliases,
+            Data.Generics.Basics,
+            Data.Generics.Instances,
+            Data.Generics.Schemes,
+            Data.Generics.Text,
+            Data.Generics.Twins,
+            Foreign.Concurrent,
+            GHC.Arr,
+            GHC.Base,
+            GHC.Conc,
+            GHC.ConsoleHandler,
+            GHC.Desugar,
+            GHC.Dotnet,
+            GHC.Enum,
+            GHC.Environment,
+            GHC.Err,
+            GHC.Exception,
+            GHC.Exts,
+            GHC.Float,
+            GHC.ForeignPtr,
+            GHC.Handle,
+            GHC.IO,
+            GHC.IOBase,
+            GHC.Int,
+            GHC.List,
+            GHC.Num,
+            GHC.PArr,
+            GHC.Pack,
+            GHC.Ptr,
+            GHC.Read,
+            GHC.Real,
+            GHC.ST,
+            GHC.STRef,
+            GHC.Show,
+            GHC.Stable,
+            GHC.Storable,
+            GHC.TopHandler,
+            GHC.Unicode,
+            GHC.Weak,
+            GHC.Word,
+            System.Timeout
+    }
+    exposed-modules:
+        Control.Applicative,
+        Control.Arrow,
+        Control.Category,
+        Control.Concurrent,
+        Control.Concurrent.Chan,
+        Control.Concurrent.MVar,
+        Control.Concurrent.QSem,
+        Control.Concurrent.QSemN,
+        Control.Concurrent.SampleVar,
+        Control.Exception,
+        Control.Monad,
+        Control.Monad.Fix,
+        Control.Monad.Instances,
+        Control.Monad.ST,
+        Control.Monad.ST.Lazy,
+        Control.Monad.ST.Strict,
+        Data.Bits,
+        Data.Bool,
+        Data.Char,
+        Data.Complex,
+        Data.Dynamic,
+        Data.Either,
+        Data.Eq,
+        Data.Fixed,
+        Data.Foldable
+        Data.Function,
+        Data.HashTable,
+        Data.IORef,
+        Data.Int,
+        Data.Ix,
+        Data.List,
+        Data.Maybe,
+        Data.Monoid,
+        Data.Ord,
+        Data.Ratio,
+        Data.STRef,
+        Data.STRef.Lazy,
+        Data.STRef.Strict,
+        Data.String,
+        Data.Traversable
+        Data.Tuple,
+        Data.Typeable,
+        Data.Unique,
+        Data.Version,
+        Data.Word,
+        Debug.Trace,
+        Foreign,
+        Foreign.C,
+        Foreign.C.Error,
+        Foreign.C.String,
+        Foreign.C.Types,
+        Foreign.ForeignPtr,
+        Foreign.Marshal,
+        Foreign.Marshal.Alloc,
+        Foreign.Marshal.Array,
+        Foreign.Marshal.Error,
+        Foreign.Marshal.Pool,
+        Foreign.Marshal.Utils,
+        Foreign.Ptr,
+        Foreign.StablePtr,
+        Foreign.Storable,
+        Numeric,
+        Prelude,
+        System.Console.GetOpt,
+        System.CPUTime,
+        System.Environment,
+        System.Exit,
+        System.IO,
+        System.IO.Error,
+        System.IO.Unsafe,
+        System.Info,
+        System.Mem,
+        System.Mem.StableName,
+        System.Mem.Weak,
+        System.Posix.Internals,
+        System.Posix.Types,
+        Text.ParserCombinators.ReadP,
+        Text.ParserCombinators.ReadPrec,
+        Text.Printf,
+        Text.Read,
+        Text.Read.Lex,
+        Text.Show,
+        Text.Show.Functions
+        Unsafe.Coerce
+}
