Revert "32-bit performance wibbles"
authorSimon Peyton Jones <simonpj@microsoft.com>
Thu, 22 Jan 2015 10:52:02 +0000 (10:52 +0000)
committerSimon Peyton Jones <simonpj@microsoft.com>
Thu, 22 Jan 2015 10:52:02 +0000 (10:52 +0000)
This reverts commit 387f1d1ec334788c3e891e9304d427bc804998f4.

Bizarrely, this commit accidentally added libraries/haskell98.
So I'll revert it entirely and start again.

40 files changed:
libraries/haskell98/.gitignore [deleted file]
libraries/haskell98/Array.hs [deleted file]
libraries/haskell98/Bits.hs [deleted file]
libraries/haskell98/CError.hs [deleted file]
libraries/haskell98/CForeign.hs [deleted file]
libraries/haskell98/CPUTime.hs [deleted file]
libraries/haskell98/CString.hs [deleted file]
libraries/haskell98/CTypes.hs [deleted file]
libraries/haskell98/Char.hs [deleted file]
libraries/haskell98/Complex.hs [deleted file]
libraries/haskell98/Directory.hs [deleted file]
libraries/haskell98/ForeignPtr.hs [deleted file]
libraries/haskell98/IO.hs [deleted file]
libraries/haskell98/Int.hs [deleted file]
libraries/haskell98/Ix.hs [deleted file]
libraries/haskell98/LICENSE [deleted file]
libraries/haskell98/List.hs [deleted file]
libraries/haskell98/Locale.hs [deleted file]
libraries/haskell98/MarshalAlloc.hs [deleted file]
libraries/haskell98/MarshalArray.hs [deleted file]
libraries/haskell98/MarshalError.hs [deleted file]
libraries/haskell98/MarshalUtils.hs [deleted file]
libraries/haskell98/Maybe.hs [deleted file]
libraries/haskell98/Monad.hs [deleted file]
libraries/haskell98/Numeric.hs [deleted file]
libraries/haskell98/Prelude.hs [deleted file]
libraries/haskell98/Ptr.hs [deleted file]
libraries/haskell98/Random.hs [deleted file]
libraries/haskell98/Ratio.hs [deleted file]
libraries/haskell98/Setup.hs [deleted file]
libraries/haskell98/StablePtr.hs [deleted file]
libraries/haskell98/Storable.hs [deleted file]
libraries/haskell98/System.hs [deleted file]
libraries/haskell98/Time.hs [deleted file]
libraries/haskell98/Word.hs [deleted file]
libraries/haskell98/changelog.md [deleted file]
libraries/haskell98/haskell98.cabal [deleted file]
libraries/haskell98/prologue.txt [deleted file]
testsuite/tests/perf/compiler/all.T
testsuite/tests/perf/haddock/all.T

diff --git a/libraries/haskell98/.gitignore b/libraries/haskell98/.gitignore
deleted file mode 100644 (file)
index 8f4d267..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-GNUmakefile
-dist-install
-ghc.mk
diff --git a/libraries/haskell98/Array.hs b/libraries/haskell98/Array.hs
deleted file mode 100644 (file)
index 3bcc271..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 709
-{-# LANGUAGE Safe #-}
-#elif __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Trustworthy #-}
-#endif
-
-module Array (
-        module Ix,  -- export all of Ix for convenience
-        Array, array, listArray, (!), bounds, indices, elems, assocs,
-        accumArray, (//), accum, ixmap
-    ) where
-
-import Ix
-import Data.Array
diff --git a/libraries/haskell98/Bits.hs b/libraries/haskell98/Bits.hs
deleted file mode 100644 (file)
index e1a141c..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module Bits (module Data.Bits) where
-import Data.Bits
-
diff --git a/libraries/haskell98/CError.hs b/libraries/haskell98/CError.hs
deleted file mode 100644 (file)
index e97a2df..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module CError (module Foreign.C.Error) where
-import Foreign.C.Error
-
diff --git a/libraries/haskell98/CForeign.hs b/libraries/haskell98/CForeign.hs
deleted file mode 100644 (file)
index 6801704..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module CForeign (module Foreign.C) where
-import Foreign.C
diff --git a/libraries/haskell98/CPUTime.hs b/libraries/haskell98/CPUTime.hs
deleted file mode 100644 (file)
index 461bc91..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module CPUTime (
-        getCPUTime, cpuTimePrecision
-    ) where
-import System.CPUTime
diff --git a/libraries/haskell98/CString.hs b/libraries/haskell98/CString.hs
deleted file mode 100644 (file)
index 5b6a7e0..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module CString (module Foreign.C.String) where
-import Foreign.C.String
diff --git a/libraries/haskell98/CTypes.hs b/libraries/haskell98/CTypes.hs
deleted file mode 100644 (file)
index 5b8bc80..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module CTypes (module Foreign.C.Types) where
-import Foreign.C.Types
diff --git a/libraries/haskell98/Char.hs b/libraries/haskell98/Char.hs
deleted file mode 100644 (file)
index a7f1b9c..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module Char (
-        isAscii, isLatin1, isControl, isPrint, isSpace, isUpper, isLower,
-        isAlpha, isDigit, isOctDigit, isHexDigit, isAlphaNum,
-        digitToInt, intToDigit,
-        toUpper, toLower,
-        ord, chr,
-        readLitChar, showLitChar, lexLitChar,
-
-        -- ...and what the Prelude exports
-        Char, String
-    ) where
-
-import Data.Char
diff --git a/libraries/haskell98/Complex.hs b/libraries/haskell98/Complex.hs
deleted file mode 100644 (file)
index 64efdbd..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module Complex (
-        Complex((:+)), realPart, imagPart, conjugate,
-        mkPolar, cis, polar, magnitude, phase
-    ) where
-
-import Data.Complex
diff --git a/libraries/haskell98/Directory.hs b/libraries/haskell98/Directory.hs
deleted file mode 100644 (file)
index bfea5de..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 709
-{-# LANGUAGE Safe #-}
-#elif __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Trustworthy #-}
-#endif
-
-module Directory (
-        Permissions( Permissions, readable, writable, executable, searchable ),
-        createDirectory, removeDirectory, removeFile,
-        renameDirectory, renameFile, getDirectoryContents,
-        getCurrentDirectory, setCurrentDirectory,
-        doesFileExist, doesDirectoryExist,
-        getPermissions, setPermissions,
-        getModificationTime
-    ) where
-
-import System.Directory hiding (Permissions,
-                                readable, writable, executable, searchable,
-                                getPermissions, setPermissions)
-import qualified System.Directory as SD
-
-data Permissions = Permissions {
-                       readable   :: Bool,
-                       writable   :: Bool,
-                       executable :: Bool,
-                       searchable :: Bool
-                   }
-    deriving (Eq, Ord, Read, Show)
-
-getPermissions :: FilePath -> IO Permissions
-getPermissions fp = do perm <- SD.getPermissions fp
-                       return $ Permissions {
-                                    readable   = SD.readable perm,
-                                    writable   = SD.writable perm,
-                                    executable = SD.executable perm,
-                                    searchable = SD.searchable perm
-                                }
-
-setPermissions :: FilePath -> Permissions -> IO ()
-setPermissions fp perm = let mkPerm = setOwnerReadable   (readable   perm)
-                                    . setOwnerWritable   (writable  perm)
-                                    . setOwnerExecutable (executable perm)
-                                    . setOwnerSearchable (searchable perm)
-                         in SD.setPermissions fp (mkPerm emptyPermissions)
-
diff --git a/libraries/haskell98/ForeignPtr.hs b/libraries/haskell98/ForeignPtr.hs
deleted file mode 100644 (file)
index 0e1b710..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Trustworthy #-}
-#endif
-
-module ForeignPtr (module Foreign.ForeignPtr) where
-import Foreign.ForeignPtr
diff --git a/libraries/haskell98/IO.hs b/libraries/haskell98/IO.hs
deleted file mode 100644 (file)
index 3103a96..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module IO (
-        Handle, HandlePosn,
-        IOMode(ReadMode,WriteMode,AppendMode,ReadWriteMode),
-        BufferMode(NoBuffering,LineBuffering,BlockBuffering),
-        SeekMode(AbsoluteSeek,RelativeSeek,SeekFromEnd),
-        stdin, stdout, stderr,
-        openFile, hClose, hFileSize, hIsEOF, isEOF,
-        hSetBuffering, hGetBuffering, hFlush,
-        hGetPosn, hSetPosn, hSeek,
-        hWaitForInput, hReady, hGetChar, hGetLine, hLookAhead, hGetContents,
-        hPutChar, hPutStr, hPutStrLn, hPrint,
-        hIsOpen, hIsClosed, hIsReadable, hIsWritable, hIsSeekable,
-        isAlreadyExistsError, isDoesNotExistError, isAlreadyInUseError,
-        isFullError, isEOFError,
-        isIllegalOperation, isPermissionError, isUserError,
-        ioeGetErrorString, ioeGetHandle, ioeGetFileName,
-        try, bracket, bracket_,
-
-        -- ...and what the Prelude exports
-        IO, FilePath, IOError, ioError, userError, catch, interact,
-        putChar, putStr, putStrLn, print, getChar, getLine, getContents,
-        readFile, writeFile, appendFile, readIO, readLn
-    ) where
-
-import System.IO
-import System.IO.Error
-
--- | The 'bracket' function captures a common allocate, compute, deallocate
--- idiom in which the deallocation step must occur even in the case of an
--- error during computation. This is similar to try-catch-finally in Java.
---
--- This version handles only IO errors, as defined by Haskell 98.
--- The version of @bracket@ in "Control.Exception" handles all exceptions,
--- and should be used instead.
-
-bracket        :: IO a -> (a -> IO b) -> (a -> IO c) -> IO c
-bracket before after m = do
-        x  <- before
-        rs <- try (m x)
-        _ <- after x
-        case rs of
-           Right r -> return r
-           Left  e -> ioError e
-
--- | A variant of 'bracket' where the middle computation doesn't want @x@.
---
--- This version handles only IO errors, as defined by Haskell 98.
--- The version of @bracket_@ in "Control.Exception" handles all exceptions,
--- and should be used instead.
-
-bracket_        :: IO a -> (a -> IO b) -> IO c -> IO c
-bracket_ before after m = do
-         x  <- before
-         rs <- try m
-         _ <- after x
-         case rs of
-            Right r -> return r
-            Left  e -> ioError e
-
--- | The construct 'try' @comp@ exposes IO errors which occur within a
--- computation, and which are not fully handled.
---
--- Non-I\/O exceptions are not caught by this variant; to catch all
--- exceptions, use 'Control.Exception.try' from "Control.Exception".
-try     :: IO a -> IO (Either IOError a)
-try f   =  catch (do r <- f
-                     return (Right r))
-                 (return . Left)
-
diff --git a/libraries/haskell98/Int.hs b/libraries/haskell98/Int.hs
deleted file mode 100644 (file)
index 241f6d8..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module Int (module Data.Int) where
-import Data.Int
diff --git a/libraries/haskell98/Ix.hs b/libraries/haskell98/Ix.hs
deleted file mode 100644 (file)
index 94d8856..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module Ix (
-        Ix(range, index, inRange), rangeSize
-    ) where
-
-import Data.Ix
diff --git a/libraries/haskell98/LICENSE b/libraries/haskell98/LICENSE
deleted file mode 100644 (file)
index de923be..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-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/libraries/haskell98/List.hs b/libraries/haskell98/List.hs
deleted file mode 100644 (file)
index eb87353..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module List (
-        elemIndex, elemIndices,
-        find, findIndex, findIndices,
-        nub, nubBy, delete, deleteBy, (\\), deleteFirstsBy,
-        union, unionBy, intersect, intersectBy,
-        intersperse, transpose, partition, group, groupBy,
-        inits, tails, isPrefixOf, isSuffixOf,
-        mapAccumL, mapAccumR,
-        sort, sortBy, insert, insertBy, maximumBy, minimumBy,
-        genericLength, genericTake, genericDrop,
-        genericSplitAt, genericIndex, genericReplicate,
-        zip4, zip5, zip6, zip7,
-        zipWith4, zipWith5, zipWith6, zipWith7,
-        unzip4, unzip5, unzip6, unzip7, unfoldr,
-
-        -- ...and what the Prelude exports
-        -- []((:), []), -- This is built-in syntax
-        map, (++), concat, filter,
-        head, last, tail, init, null, length, (!!),
-        foldl, foldl1, scanl, scanl1, foldr, foldr1, scanr, scanr1,
-        iterate, repeat, replicate, cycle,
-        take, drop, splitAt, takeWhile, dropWhile, span, break,
-        lines, words, unlines, unwords, reverse, and, or,
-        any, all, elem, notElem, lookup,
-        sum, product, maximum, minimum, concatMap,
-        zip, zip3, zipWith, zipWith3, unzip, unzip3
-    ) where
-
-import Data.OldList hiding (foldl', splitAt)
diff --git a/libraries/haskell98/Locale.hs b/libraries/haskell98/Locale.hs
deleted file mode 100644 (file)
index 65123da..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 709
-{-# LANGUAGE Safe #-}
-#elif __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Trustworthy #-}
-#endif
-
-module Locale (
-        TimeLocale(..), defaultTimeLocale
-    ) where
-
-import System.Locale (
-        -- just the bits that are specified by Haskell 98
-        TimeLocale(TimeLocale,wDays,months,amPm,dateTimeFmt,
-                   dateFmt,timeFmt,time12Fmt),
-        defaultTimeLocale
-    )
diff --git a/libraries/haskell98/MarshalAlloc.hs b/libraries/haskell98/MarshalAlloc.hs
deleted file mode 100644 (file)
index 0da40ac..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module MarshalAlloc (module Foreign.Marshal.Alloc) where
-import Foreign.Marshal.Alloc
diff --git a/libraries/haskell98/MarshalArray.hs b/libraries/haskell98/MarshalArray.hs
deleted file mode 100644 (file)
index 60f4db8..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module MarshalArray (module Foreign.Marshal.Array) where
-import Foreign.Marshal.Array
diff --git a/libraries/haskell98/MarshalError.hs b/libraries/haskell98/MarshalError.hs
deleted file mode 100644 (file)
index 16049cc..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module MarshalError (
-        module Foreign.Marshal.Error,
-        IOErrorType,
-        mkIOError,
-        alreadyExistsErrorType,
-        doesNotExistErrorType,
-        alreadyInUseErrorType,
-        fullErrorType,
-        eofErrorType,
-        illegalOperationErrorType,
-        permissionErrorType,
-        userErrorType,
-        annotateIOError
-  ) where
-
-import System.IO.Error
-import Foreign.Marshal.Error
diff --git a/libraries/haskell98/MarshalUtils.hs b/libraries/haskell98/MarshalUtils.hs
deleted file mode 100644 (file)
index 55dc8bf..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module MarshalUtils (module Foreign.Marshal.Utils) where
-import Foreign.Marshal.Utils
diff --git a/libraries/haskell98/Maybe.hs b/libraries/haskell98/Maybe.hs
deleted file mode 100644 (file)
index 818ffe7..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module Maybe (
-        isJust, isNothing,
-        fromJust, fromMaybe, listToMaybe, maybeToList,
-        catMaybes, mapMaybe,
-
-        -- ...and what the Prelude exports
-        Maybe(Nothing, Just),
-        maybe
-    ) where
-
-import Data.Maybe
diff --git a/libraries/haskell98/Monad.hs b/libraries/haskell98/Monad.hs
deleted file mode 100644 (file)
index 852b8b4..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module Monad (
-        MonadPlus(mzero, mplus),
-        join, guard, when, unless, ap,
-        msum,
-        filterM, mapAndUnzipM, zipWithM, zipWithM_, foldM,
-        liftM, liftM2, liftM3, liftM4, liftM5,
-
-        -- ...and what the Prelude exports
-        Monad((>>=), (>>), return, fail),
-        Functor(fmap),
-        mapM, mapM_, sequence, sequence_, (=<<),
-    ) where
-
-import Control.Monad
diff --git a/libraries/haskell98/Numeric.hs b/libraries/haskell98/Numeric.hs
deleted file mode 100644 (file)
index 28657fd..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-{-# LANGUAGE CPP, PackageImports #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module Numeric (
-
-        -- * Showing
-
-        showSigned,       -- :: (Real a) => (a -> ShowS) -> Int -> a -> ShowS
-
-        showIntAtBase,    -- :: Integral a => a -> (a -> Char) -> a -> ShowS
-        showInt,          -- :: Integral a => a -> ShowS
-        showHex,          -- :: Integral a => a -> ShowS
-        showOct,          -- :: Integral a => a -> ShowS
-
-        showEFloat,       -- :: (RealFloat a) => Maybe Int -> a -> ShowS
-        showFFloat,       -- :: (RealFloat a) => Maybe Int -> a -> ShowS
-        showGFloat,       -- :: (RealFloat a) => Maybe Int -> a -> ShowS
-        showFloat,        -- :: (RealFloat a) => a -> ShowS
-
-        floatToDigits,    -- :: (RealFloat a) => Integer -> a -> ([Int], Int)
-
-        -- * Reading
-
-        -- | /NB:/ 'readInt' is the \'dual\' of 'showIntAtBase',
-        -- and 'readDec' is the \`dual\' of 'showInt'.
-        -- The inconsistent naming is a historical accident.
-
-        readSigned,       -- :: (Real a) => ReadS a -> ReadS a
-
-        readInt,          -- :: (Integral a) => a -> (Char -> Bool)
-                      --         -> (Char -> Int) -> ReadS a
-        readDec,          -- :: (Integral a) => ReadS a
-        readOct,          -- :: (Integral a) => ReadS a
-        readHex,          -- :: (Integral a) => ReadS a
-
-        readFloat,        -- :: (RealFloat a) => ReadS a
-
-        lexDigits,        -- :: ReadS String
-
-        -- * Miscellaneous
-
-        fromRat,          -- :: (RealFloat a) => Rational -> a
-
-    ) where
-
-import "base" Numeric
diff --git a/libraries/haskell98/Prelude.hs b/libraries/haskell98/Prelude.hs
deleted file mode 100644 (file)
index 508f735..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-{-# LANGUAGE BangPatterns, NoImplicitPrelude, PackageImports, Trustworthy #-}
-
--- |
--- The Haskell 98 Prelude: a standard module imported by default
--- into all Haskell modules.  For more documentation, see the Haskell 98
--- Report <http://www.haskell.org/onlinereport/>.
-
-module Prelude (
-
-        -- * Standard types, classes and related functions
-
-        -- ** Basic data types
-        Bool(False, True),
-        (&&), (||), not, otherwise,
-
-        Maybe(Nothing, Just),
-        maybe,
-
-        Either(Left, Right),
-        either,
-
-        Ordering(LT, EQ, GT),
-        Char, String,
-
-        -- *** Tuples
-        fst, snd, curry, uncurry,
-
-        -- ** Basic type classes
-        Eq((==), (/=)),
-        Ord(compare, (<), (<=), (>=), (>), max, min),
-        Enum(succ, pred, toEnum, fromEnum, enumFrom, enumFromThen,
-             enumFromTo, enumFromThenTo),
-        Bounded(minBound, maxBound),
-
-        -- ** Numbers
-
-        -- *** Numeric types
-        Int, Integer, Float, Double,
-        Rational,
-
-        -- *** Numeric type classes
-        Num((+), (-), (*), negate, abs, signum, fromInteger),
-        Real(toRational),
-        Integral(quot, rem, div, mod, quotRem, divMod, toInteger),
-        Fractional((/), recip, fromRational),
-        Floating(pi, exp, log, sqrt, (**), logBase, sin, cos, tan,
-                 asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh),
-        RealFrac(properFraction, truncate, round, ceiling, floor),
-        RealFloat(floatRadix, floatDigits, floatRange, decodeFloat,
-                  encodeFloat, exponent, significand, scaleFloat, isNaN,
-                  isInfinite, isDenormalized, isIEEE, isNegativeZero, atan2),
-
-        -- *** Numeric functions
-        subtract, even, odd, gcd, lcm, (^), (^^),
-        fromIntegral, realToFrac,
-
-        -- ** Monads and functors
-        Monad((>>=), (>>), return, fail),
-        Functor(fmap),
-        mapM, mapM_, sequence, sequence_, (=<<),
-
-        -- ** Miscellaneous functions
-        id, const, (.), flip, ($), until,
-        asTypeOf, error, undefined,
-        seq, ($!),
-
-        -- * List operations
-        map, (++), filter,
-        head, last, tail, init, null, length, (!!),
-        reverse,
-        -- ** Reducing lists (folds)
-        foldl, foldl1, foldr, foldr1,
-        -- *** Special folds
-        and, or, any, all,
-        sum, product,
-        concat, concatMap,
-        maximum, minimum,
-        -- ** Building lists
-        -- *** Scans
-        scanl, scanl1, scanr, scanr1,
-        -- *** Infinite lists
-        iterate, repeat, replicate, cycle,
-        -- ** Sublists
-        take, drop, splitAt, takeWhile, dropWhile, span, break,
-        -- ** Searching lists
-        elem, notElem, lookup,
-        -- ** Zipping and unzipping lists
-        zip, zip3, zipWith, zipWith3, unzip, unzip3,
-        -- ** Functions on strings
-        lines, words, unlines, unwords,
-
-        -- * Converting to and from @String@
-        -- ** Converting to @String@
-        ShowS,
-        Show(showsPrec, showList, show),
-        shows,
-        showChar, showString, showParen,
-        -- ** Converting from @String@
-        ReadS,
-        Read(readsPrec, readList),
-        reads, readParen, read, lex,
-
-        -- * Basic Input and output
-        IO,
-        -- ** Simple I\/O operations
-        -- All I/O functions defined here are character oriented.  The
-        -- treatment of the newline character will vary on different systems.
-        -- For example, two characters of input, return and linefeed, may
-        -- read as a single newline character.  These functions cannot be
-        -- used portably for binary I/O.
-        -- *** Output functions
-        putChar,
-        putStr, putStrLn, print,
-        -- *** Input functions
-        getChar,
-        getLine, getContents, interact,
-        -- *** Files
-        FilePath,
-        readFile, writeFile, appendFile, readIO, readLn,
-        -- ** Exception handling in the I\/O monad
-        IOError, ioError, userError, catch
-
-    ) where
-
-import qualified "base" Control.Exception.Base as New (catch)
-import "base" Control.Monad
-import "base" System.IO
-import "base" System.IO.Error (IOError, ioError, userError)
-import "base" Data.OldList hiding ( splitAt )
-import "base" Data.Either
-import "base" Data.Maybe
-import "base" Data.Tuple
-
-import GHC.Base (($), ($!), (&&), (.), (||), Bool(..), Char, Eq(..), Int,
-                 Ord(..), Ordering(..), String, asTypeOf, const, error, flip,
-                 id, not, otherwise, seq, undefined, until)
-import Text.Read
-import GHC.Enum
-import GHC.Num
-import GHC.Real hiding ( gcd )
-import qualified GHC.Real ( gcd )
-import GHC.Float
-import GHC.Show
-
--- -----------------------------------------------------------------------------
--- Miscellaneous functions
-
--- | The 'catch' function establishes a handler that receives any
--- 'IOError' raised in the action protected by 'catch'.
--- An 'IOError' is caught by
--- the most recent handler established by one of the exception handling
--- functions.  These handlers are
--- not selective: all 'IOError's are caught.  Exception propagation
--- must be explicitly provided in a handler by re-raising any unwanted
--- exceptions.  For example, in
---
--- > f = catch g (\e -> if IO.isEOFError e then return [] else ioError e)
---
--- the function @f@ returns @[]@ when an end-of-file exception
--- (cf. 'System.IO.Error.isEOFError') occurs in @g@; otherwise, the
--- exception is propagated to the next outer handler.
---
--- When an exception propagates outside the main program, the Haskell
--- system prints the associated 'IOError' value and exits the program.
---
--- Non-I\/O exceptions are not caught by this variant; to catch all
--- exceptions, use 'Control.Exception.catch' from "Control.Exception".
-catch :: IO a -> (IOError -> IO a) -> IO a
-catch = New.catch
-
--- | @'gcd' x y@ is the greatest (positive) integer that divides both @x@
--- and @y@; for example @'gcd' (-3) 6@ = @3@, @'gcd' (-3) (-6)@ = @3@,
--- @'gcd' 0 4@ = @4@.  @'gcd' 0 0@ raises a runtime error.
-gcd             :: (Integral a) => a -> a -> a
-gcd 0 0         =  error "Prelude.gcd: gcd 0 0 is undefined"
-gcd x y         = GHC.Real.gcd x y
-
--- The GHC's version of 'splitAt' is too strict in 'n' compared to
--- Haskell98/2010 version. Ticket #1182.
-
--- | 'splitAt' @n xs@ returns a tuple where first element is @xs@ prefix of
--- length @n@ and second element is the remainder of the list:
---
--- > splitAt 6 "Hello World!" == ("Hello ","World!")
--- > splitAt 3 [1,2,3,4,5] == ([1,2,3],[4,5])
--- > splitAt 1 [1,2,3] == ([1],[2,3])
--- > splitAt 3 [1,2,3] == ([1,2,3],[])
--- > splitAt 4 [1,2,3] == ([1,2,3],[])
--- > splitAt 0 [1,2,3] == ([],[1,2,3])
--- > splitAt (-1) [1,2,3] == ([],[1,2,3])
---
--- It is equivalent to @('take' n xs, 'drop' n xs)@.
--- 'splitAt' is an instance of the more general 'Data.List.genericSplitAt',
--- in which @n@ may be of any integral type.
-splitAt                :: Int -> [a] -> ([a],[a])
-splitAt n xs           =  (take n xs, drop n xs)
diff --git a/libraries/haskell98/Ptr.hs b/libraries/haskell98/Ptr.hs
deleted file mode 100644 (file)
index 7d1cdb2..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module Ptr (module Foreign.Ptr) where
-import Foreign.Ptr
diff --git a/libraries/haskell98/Random.hs b/libraries/haskell98/Random.hs
deleted file mode 100644 (file)
index 840e668..0000000
+++ /dev/null
@@ -1,407 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Trustworthy #-}
-#endif
-
-module Random (
-
-        -- $intro
-
-        -- * Random number generators
-
-          RandomGen(next, split, genRange)
-
-        -- ** Standard random number generators
-        , StdGen
-        , mkStdGen
-
-        -- ** The global random number generator
-
-        -- $globalrng
-
-        , getStdRandom
-        , getStdGen
-        , setStdGen
-        , newStdGen
-
-        -- * Random values of various types
-        , Random ( random,   randomR,
-                   randoms,  randomRs,
-                   randomIO, randomRIO )
-
-        -- * References
-        -- $references
-
-    ) where
-
-import Prelude
-
-import Data.Int
-
-import System.CPUTime   ( getCPUTime )
-import Data.Time        ( getCurrentTime, UTCTime(..) )
-import Data.Ratio       ( numerator, denominator )
-import Data.Char        ( isSpace, chr, ord )
-import System.IO.Unsafe ( unsafePerformIO )
-import Data.IORef
-import Numeric          ( readDec )
-
--- The standard nhc98 implementation of Time.ClockTime does not match
--- the extended one expected in this module, so we lash-up a quick
--- replacement here.
-getTime :: IO (Integer, Integer)
-getTime = do
-  utc <- getCurrentTime
-  let daytime = toRational $ utctDayTime utc
-  return $ quotRem (numerator daytime) (denominator daytime)
-
--- | The class 'RandomGen' provides a common interface to random number
--- generators.
---
--- Minimal complete definition: 'next' and 'split'.
-
-class RandomGen g where
-
-   -- |The 'next' operation returns an 'Int' that is uniformly distributed
-   -- in the range returned by 'genRange' (including both end points),
-   -- and a new generator.
-   next     :: g -> (Int, g)
-
-   -- |The 'split' operation allows one to obtain two distinct random number
-   -- generators. This is very useful in functional programs (for example, when
-   -- passing a random number generator down to recursive calls), but very
-   -- little work has been done on statistically robust implementations of
-   -- 'split' (["Random\#Burton", "Random\#Hellekalek"]
-   -- are the only examples we know of).
-   split    :: g -> (g, g)
-
-   -- |The 'genRange' operation yields the range of values returned by
-   -- the generator.
-   --
-   -- It is required that:
-   --
-   -- * If @(a,b) = 'genRange' g@, then @a < b@.
-   --
-   -- * 'genRange' always returns a pair of defined 'Int's.
-   --
-   -- The second condition ensures that 'genRange' cannot examine its
-   -- argument, and hence the value it returns can be determined only by the
-   -- instance of 'RandomGen'.  That in turn allows an implementation to make
-   -- a single call to 'genRange' to establish a generator's range, without
-   -- being concerned that the generator returned by (say) 'next' might have
-   -- a different range to the generator passed to 'next'.
-   --
-   -- The default definition spans the full range of 'Int'.
-   genRange :: g -> (Int,Int)
-
-   -- default method
-   genRange _ = (minBound, maxBound)
-
-{- |
-The 'StdGen' instance of 'RandomGen' has a 'genRange' of at least 30 bits.
-
-The result of repeatedly using 'next' should be at least as statistically
-robust as the /Minimal Standard Random Number Generator/ described by
-["Random\#Park", "Random\#Carta"].
-Until more is known about implementations of 'split', all we require is
-that 'split' deliver generators that are (a) not identical and
-(b) independently robust in the sense just given.
-
-The 'Show' and 'Read' instances of 'StdGen' provide a primitive way to save the
-state of a random number generator.
-It is required that @'read' ('show' g) == g@.
-
-In addition, 'reads' may be used to map an arbitrary string (not necessarily one
-produced by 'show') onto a value of type 'StdGen'. In general, the 'Read'
-instance of 'StdGen' has the following properties:
-
-* It guarantees to succeed on any string.
-
-* It guarantees to consume only a finite portion of the string.
-
-* Different argument strings are likely to result in different results.
-
--}
-
-data StdGen
- = StdGen Int32 Int32
-
-instance RandomGen StdGen where
-  next  = stdNext
-  split = stdSplit
-  genRange _ = stdRange
-
-instance Show StdGen where
-  showsPrec p (StdGen s1 s2) =
-     showsPrec p s1 .
-     showChar ' ' .
-     showsPrec p s2
-
-instance Read StdGen where
-  readsPrec _p = \ r ->
-     case try_read r of
-       r'@[_] -> r'
-       _   -> [stdFromString r] -- because it shouldn't ever fail.
-    where
-      try_read r = do
-         (s1, r1) <- readDec (dropWhile isSpace r)
-         (s2, r2) <- readDec (dropWhile isSpace r1)
-         return (StdGen s1 s2, r2)
-
-{-
- If we cannot unravel the StdGen from a string, create
- one based on the string given.
--}
-stdFromString         :: String -> (StdGen, String)
-stdFromString s        = (mkStdGen num, rest)
-        where (cs, rest) = splitAt 6 s
-              num        = foldl (\a x -> x + 3 * a) 1 (map ord cs)
-
-
-{- |
-The function 'mkStdGen' provides an alternative way of producing an initial
-generator, by mapping an 'Int' into a generator. Again, distinct arguments
-should be likely to produce distinct generators.
--}
-mkStdGen :: Int -> StdGen -- why not Integer ?
-mkStdGen s = mkStdGen32 $ fromIntegral s
-
-mkStdGen32 :: Int32 -> StdGen
-mkStdGen32 s
- | s < 0     = mkStdGen32 (-s)
- | otherwise = StdGen (s1+1) (s2+1)
-      where
-        (q, s1) = s `divMod` 2147483562
-        s2      = q `mod` 2147483398
-
-createStdGen :: Integer -> StdGen
-createStdGen s = mkStdGen32 $ fromIntegral s
-
--- FIXME: 1/2/3 below should be ** (vs@30082002) XXX
-
-{- |
-With a source of random number supply in hand, the 'Random' class allows the
-programmer to extract random values of a variety of types.
-
-Minimal complete definition: 'randomR' and 'random'.
-
--}
-
-class Random a where
-  -- | Takes a range /(lo,hi)/ and a random number generator
-  -- /g/, and returns a random value uniformly distributed in the closed
-  -- interval /[lo,hi]/, together with a new generator. It is unspecified
-  -- what happens if /lo>hi/. For continuous types there is no requirement
-  -- that the values /lo/ and /hi/ are ever produced, but they may be,
-  -- depending on the implementation and the interval.
-  randomR :: RandomGen g => (a,a) -> g -> (a,g)
-
-  -- | The same as 'randomR', but using a default range determined by the type:
-  --
-  -- * For bounded types (instances of 'Bounded', such as 'Char'),
-  --   the range is normally the whole type.
-  --
-  -- * For fractional types, the range is normally the semi-closed interval
-  -- @[0,1)@.
-  --
-  -- * For 'Integer', the range is (arbitrarily) the range of 'Int'.
-  random  :: RandomGen g => g -> (a, g)
-
-  -- | Plural variant of 'randomR', producing an infinite list of
-  -- random values instead of returning a new generator.
-  randomRs :: RandomGen g => (a,a) -> g -> [a]
-  randomRs ival g = x : randomRs ival g' where (x,g') = randomR ival g
-
-  -- | Plural variant of 'random', producing an infinite list of
-  -- random values instead of returning a new generator.
-  randoms  :: RandomGen g => g -> [a]
-  randoms  g      = (\(x,g') -> x : randoms g') (random g)
-
-  -- | A variant of 'randomR' that uses the global random number generator
-  -- (see "Random#globalrng").
-  randomRIO :: (a,a) -> IO a
-  randomRIO range  = getStdRandom (randomR range)
-
-  -- | A variant of 'random' that uses the global random number generator
-  -- (see "Random#globalrng").
-  randomIO  :: IO a
-  randomIO         = getStdRandom random
-
-
-instance Random Int where
-  randomR (a,b) g = randomIvalInteger (toInteger a, toInteger b) g
-  random g        = randomR (minBound,maxBound) g
-
-instance Random Char where
-  randomR (a,b) g =
-      case (randomIvalInteger (toInteger (ord a), toInteger (ord b)) g) of
-        (x,g') -> (chr x, g')
-  random g        = randomR (minBound,maxBound) g
-
-instance Random Bool where
-  randomR (a,b) g =
-      case (randomIvalInteger (bool2Int a, bool2Int b) g) of
-        (x, g') -> (int2Bool x, g')
-       where
-         bool2Int :: Bool -> Integer
-         bool2Int False = 0
-         bool2Int True  = 1
-
-         int2Bool :: Int -> Bool
-         int2Bool 0     = False
-         int2Bool _     = True
-
-  random g        = randomR (minBound,maxBound) g
-
-instance Random Integer where
-  randomR ival g = randomIvalInteger ival g
-  random g       = randomR (toInteger (minBound::Int), toInteger (maxBound::Int)) g
-
-instance Random Double where
-  randomR ival g = randomIvalDouble ival id g
-  random g       = randomR (0::Double,1) g
-
--- hah, so you thought you were saving cycles by using Float?
-instance Random Float where
-  random g        = randomIvalDouble (0::Double,1) realToFrac g
-  randomR (a,b) g = randomIvalDouble (realToFrac a, realToFrac b) realToFrac g
-
-mkStdRNG :: Integer -> IO StdGen
-mkStdRNG o = do
-    ct          <- getCPUTime
-    (sec, psec) <- getTime
-    return (createStdGen (sec * 12345 + psec + ct + o))
-
-randomIvalInteger :: (RandomGen g, Num a) => (Integer, Integer) -> g -> (a, g)
-randomIvalInteger (l,h) rng
- | l > h     = randomIvalInteger (h,l) rng
- | otherwise = case (f n 1 rng) of (v, rng') -> (fromInteger (l + v `mod` k), rng')
-     where
-       k = h - l + 1
-       b = 2147483561
-       n = iLogBase b k
-
-       f 0 acc g = (acc, g)
-       f n' acc g =
-          let
-           (x,g')   = next g
-          in
-          f (n' - 1) (fromIntegral x + acc * b) g'
-
-randomIvalDouble :: (RandomGen g, Fractional a) => (Double, Double) -> (Double -> a) -> g -> (a, g)
-randomIvalDouble (l,h) fromDouble rng
-  | l > h     = randomIvalDouble (h,l) fromDouble rng
-  | otherwise =
-       case (randomIvalInteger (toInteger (minBound::Int32), toInteger (maxBound::Int32)) rng) of
-         (x, rng') ->
-            let
-             scaled_x =
-                fromDouble ((l+h)/2) +
-                fromDouble ((h-l) / realToFrac int32Count) *
-                fromIntegral (x::Int32)
-            in
-            (scaled_x, rng')
-
-int32Count :: Integer
-int32Count = toInteger (maxBound::Int32) - toInteger (minBound::Int32) + 1
-
-iLogBase :: Integer -> Integer -> Integer
-iLogBase b i = if i < b then 1 else 1 + iLogBase b (i `div` b)
-
-stdRange :: (Int,Int)
-stdRange = (0, 2147483562)
-
-stdNext :: StdGen -> (Int, StdGen)
--- Returns values in the range stdRange
-stdNext (StdGen s1 s2) = (fromIntegral z', StdGen s1'' s2'')
-        where   z'   = if z < 1 then z + 2147483562 else z
-                z    = s1'' - s2''
-
-                k    = s1 `quot` 53668
-                s1'  = 40014 * (s1 - k * 53668) - k * 12211
-                s1'' = if s1' < 0 then s1' + 2147483563 else s1'
-
-                k'   = s2 `quot` 52774
-                s2'  = 40692 * (s2 - k' * 52774) - k' * 3791
-                s2'' = if s2' < 0 then s2' + 2147483399 else s2'
-
-stdSplit            :: StdGen -> (StdGen, StdGen)
-stdSplit std@(StdGen s1 s2)
-                     = (left, right)
-                       where
-                        -- no statistical foundation for this!
-                        left    = StdGen new_s1 t2
-                        right   = StdGen t1 new_s2
-
-                        new_s1 | s1 == 2147483562 = 1
-                               | otherwise        = s1 + 1
-
-                        new_s2 | s2 == 1          = 2147483398
-                               | otherwise        = s2 - 1
-
-                        StdGen t1 t2 = snd (next std)
-
--- The global random number generator
-
-{- $globalrng #globalrng#
-
-There is a single, implicit, global random number generator of type
-'StdGen', held in some global variable maintained by the 'IO' monad. It is
-initialised automatically in some system-dependent fashion, for example, by
-using the time of day, or Linux's kernel random number generator. To get
-deterministic behaviour, use 'setStdGen'.
--}
-
--- |Sets the global random number generator.
-setStdGen :: StdGen -> IO ()
-setStdGen sgen = writeIORef theStdGen sgen
-
--- |Gets the global random number generator.
-getStdGen :: IO StdGen
-getStdGen  = readIORef theStdGen
-
-theStdGen :: IORef StdGen
-theStdGen  = unsafePerformIO $ do
-   rng <- mkStdRNG 0
-   newIORef rng
-
--- |Applies 'split' to the current global random generator,
--- updates it with one of the results, and returns the other.
-newStdGen :: IO StdGen
-newStdGen = atomicModifyIORef theStdGen split
-
-{- |Uses the supplied function to get a value from the current global
-random generator, and updates the global generator with the new generator
-returned by the function. For example, @rollDice@ gets a random integer
-between 1 and 6:
-
->  rollDice :: IO Int
->  rollDice = getStdRandom (randomR (1,6))
-
--}
-
-getStdRandom :: (StdGen -> (a,StdGen)) -> IO a
-getStdRandom f = atomicModifyIORef theStdGen (swap . f)
-  where swap (v,g) = (g,v)
-
-{- $references
-
-1. FW #Burton# Burton and RL Page, /Distributed random number generation/,
-Journal of Functional Programming, 2(2):203-212, April 1992.
-
-2. SK #Park# Park, and KW Miller, /Random number generators -
-good ones are hard to find/, Comm ACM 31(10), Oct 1988, pp1192-1201.
-
-3. DG #Carta# Carta, /Two fast implementations of the minimal standard
-random number generator/, Comm ACM, 33(1), Jan 1990, pp87-88.
-
-4. P #Hellekalek# Hellekalek, /Don\'t trust parallel Monte Carlo/,
-Department of Mathematics, University of Salzburg,
-<http://random.mat.sbg.ac.at/~peter/pads98.ps>, 1998.
-
-5. Pierre #LEcuyer# L'Ecuyer, /Efficient and portable combined random
-number generators/, Comm ACM, 31(6), Jun 1988, pp742-749.
-
-The Web site <http://random.mat.sbg.ac.at/> is a great source of information.
-
--}
diff --git a/libraries/haskell98/Ratio.hs b/libraries/haskell98/Ratio.hs
deleted file mode 100644 (file)
index a7ae384..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module Ratio (
-        Ratio, Rational, (%), numerator, denominator, approxRational
-    ) where
-
-import Data.Ratio
diff --git a/libraries/haskell98/Setup.hs b/libraries/haskell98/Setup.hs
deleted file mode 100644 (file)
index 6fa548c..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-module Main (main) where
-
-import Distribution.Simple
-
-main :: IO ()
-main = defaultMain
diff --git a/libraries/haskell98/StablePtr.hs b/libraries/haskell98/StablePtr.hs
deleted file mode 100644 (file)
index e80f382..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module StablePtr (module Foreign.StablePtr) where
-import Foreign.StablePtr
diff --git a/libraries/haskell98/Storable.hs b/libraries/haskell98/Storable.hs
deleted file mode 100644 (file)
index de10cc2..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module Storable (module Foreign.Storable) where
-import Foreign.Storable
diff --git a/libraries/haskell98/System.hs b/libraries/haskell98/System.hs
deleted file mode 100644 (file)
index 212af71..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 709
-{-# LANGUAGE Safe #-}
-#elif __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Trustworthy #-}
-#endif
-
-module System (
-        ExitCode(ExitSuccess,ExitFailure),
-        getArgs, getProgName, getEnv, system, exitWith, exitFailure
-    ) where
-
-import System.Exit
-import System.Environment
-import System.Process
diff --git a/libraries/haskell98/Time.hs b/libraries/haskell98/Time.hs
deleted file mode 100644 (file)
index 67f4c85..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 709
-{-# LANGUAGE Safe #-}
-#elif __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Trustworthy #-}
-#endif
-
-module Time (
-        ClockTime,
-        Month(January,February,March,April,May,June,
-              July,August,September,October,November,December),
-        Day(Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday),
-        CalendarTime(CalendarTime, ctYear, ctMonth, ctDay, ctHour, ctMin,
-                     ctSec, ctPicosec, ctWDay, ctYDay, ctTZName, ctTZ, ctIsDST),
-        TimeDiff(TimeDiff, tdYear, tdMonth, tdDay, tdHour,
-                 tdMin, tdSec, tdPicosec),
-        getClockTime, addToClockTime, diffClockTimes,
-        toCalendarTime, toUTCTime, toClockTime,
-        calendarTimeToString, formatCalendarTime
-    ) where
-
-import System.Time
diff --git a/libraries/haskell98/Word.hs b/libraries/haskell98/Word.hs
deleted file mode 100644 (file)
index 5fefc56..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 701
-{-# LANGUAGE Safe #-}
-#endif
-
-module Word (module Data.Word) where
-import Data.Word
diff --git a/libraries/haskell98/changelog.md b/libraries/haskell98/changelog.md
deleted file mode 100644 (file)
index 0fec6a3..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-# Changelog for [`haskell98` package](http://hackage.haskell.org/package/haskell98)
-
-## 2.0.0.4 *TBA*
-
-  - Bundled with GHC 7.10.1
-
-## 2.0.0.3 *Mar 2014*
-
-  - Bundled with GHC 7.8.1
-
-  - Remove NHC98-specific code
-
-  - Adapt to changes in GHC 7.8's core-libraries
-
-  - Update to Cabal format 1.10
diff --git a/libraries/haskell98/haskell98.cabal b/libraries/haskell98/haskell98.cabal
deleted file mode 100644 (file)
index 728879d..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-name:           haskell98
-version:        2.0.0.4
--- NOTE: Don't forget to update ./changelog.md
-license:        BSD3
-license-file:   LICENSE
-maintainer:     libraries@haskell.org
-bug-reports:    http://ghc.haskell.org/trac/ghc/newticket?component=libraries/haskell98
-synopsis:       Compatibility with Haskell 98
-category:       Haskell98, Prelude
-homepage:       http://www.haskell.org/definition/
-build-type:     Simple
-cabal-version:  >=1.10
-description:
-    This package provides compatibility with the modules of Haskell
-    98 and the FFI addendum, by means of wrappers around modules from
-    the base package (which in many cases have additional features).
-    However "Prelude", "Numeric" and "Foreign" are provided directly by
-    the @base@ package.
-
-extra-source-files:
-    changelog.md
-
-source-repository head
-    type:     git
-    location: http://git.haskell.org/packages/haskell98.git
-
-Library
-    default-language: Haskell98
-    other-extensions:
-        BangPatterns
-        NoImplicitPrelude
-        PackageImports
-        Safe
-        Trustworthy
-
-    build-depends:
-        array       >= 0.5 && < 0.6,
-        base        >= 4.8 && < 4.9,
-        directory   >= 1.2 && < 1.3,
-        old-locale  >= 1.0 && < 1.1,
-        old-time    >= 1.1 && < 1.2,
-        process     >= 1.2 && < 1.3,
-        time        >= 1.4 && < 1.6
-
-    -- haskell98 is a "hidden" package
-    exposed: False
-
-    exposed-modules:
-        -- Haskell 98
-        Prelude
-
-        Array
-        CPUTime
-        Char
-        Complex
-        Directory
-        IO
-        Ix
-        List
-        Locale
-        Maybe
-        Monad
-        Numeric
-        Random
-        Ratio
-        System
-        Time
-
-        -- FFI addendum (Foreign is in the base package)
-        Bits
-        CError
-        CForeign
-        CString
-        CTypes
-        ForeignPtr
-        Int
-        MarshalAlloc
-        MarshalArray
-        MarshalError
-        MarshalUtils
-        Ptr
-        StablePtr
-        Storable
-        Word
-
-    ghc-options: -Wall
diff --git a/libraries/haskell98/prologue.txt b/libraries/haskell98/prologue.txt
deleted file mode 100644 (file)
index 93bc35b..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-This package provides compatibility with the modules of Haskell 98 and
-the FFI addendum, by means of wrappers around modules from the @base@ package
-(which in many cases have additional features).
-However @Prelude@, @Numeric@ and @Foreign@ are provided directly
-by the @base@ package.
-The modules of this package are documented in the /Revised Haskell 98 Report/,
-at <http://www.haskell.org/onlinereport/>,
-and the /Haskell 98 Foreign Function Interface/ addendum,
-at <http://www.cse.unsw.edu.au/~chak/haskell/ffi/>.
index a874866..e65ce83 100644 (file)
@@ -578,7 +578,7 @@ test('T9872a',
           # 2014-12-10    5521332656    Initally created
           # 2014-12-16    5848657456    Flattener parameterized over roles
           # 2014-12-18    2680733672    Reduce type families even more eagerly
-           (wordsize(32), 1325592896, 5)
+           (wordsize(32), 1400000000, 5)
           ]),
       ],
      compile_fail,
@@ -615,7 +615,7 @@ test('T9872d',
           # 2014-12-18    796071864   Initally created
           # 2014-12-18    739189056   Reduce type families even more eagerly
           # 2015-01-07    687562440   TrieMap leaf compression
-           (wordsize(32), 328810212, 5)
+           (wordsize(32), 353644844, 5)
           ]),
       ],
      compile,
@@ -624,9 +624,8 @@ test('T9872d',
 test('T9961',
      [ only_ways(['normal']),
        compiler_stats_num_field('bytes allocated',
-          [(wordsize(64), 772510192, 5),
+          [(wordsize(64), 772510192, 5)
           # 2015-01-12    807117816   Initally created
-           (wordsize(32), 375647160, 5)
           ]),
       ],
      compile,
index e9ffbb6..21b4af7 100644 (file)
@@ -23,13 +23,11 @@ test('haddock.base',
             # 2014-10-07: 8322584616 (x86_64/Linux)
             # 2014-12-14: 9502647104 (x86_64/Linux) - Update to Haddock 2.16
             # 2014-01-08: 9014511528 (x86_64/Linux) - Eliminate so-called "silent superclass parameters" (and others)
-
-          ,(platform('i386-unknown-mingw32'), 4434804940, 5)
+          ,(platform('i386-unknown-mingw32'), 4202377432, 5)
             # 2013-02-10:                     3358693084 (x86/Windows)
             # 2013-11-13:                     3097751052 (x86/Windows, 64bit machine)
             # 2014-04-04:                     3548581572 (x86/Windows, 64bit machine)
             # 2014-12-01:                     4202377432 (x86/Windows, 64bit machine)
-            # 2015-01-20:                     4434804940 (x86/Windows, 64bit machine)
 
           ,(wordsize(32), 3799130400, 1)])
             # 2012-08-14: 3046487920 (x86/OSX)
@@ -66,13 +64,12 @@ test('haddock.Cabal',
             # 2014-12-14: 6387320816 (x86_64/Linux) - Update to Haddock 2.16
             # 2015-01-22: 6710234312 (x86_64/Linux) - Cabal updated
 
-          ,(platform('i386-unknown-mingw32'), 3293415576, 5)
+          ,(platform('i386-unknown-mingw32'), 3088635556, 5)
             # 2012-10-30:                     1733638168 (x86/Windows)
             # 2013-02-10:                     1906532680 (x86/Windows)
             # 2014-01-28:                     1966911336 (x86/Windows)
             # 2014-04-24:                     2052220292 (x86/Windows)
             # 2014-12-01:                     3088635556 (x86/Windows)
-            # 2015-01-20:                     3293415576 
 
           ,(wordsize(32), 2127198484, 1)])
             # 2012-08-14: 1648610180 (x86/OSX)
@@ -87,7 +84,7 @@ test('haddock.compiler',
      [unless(in_tree_compiler(), skip)
      ,stats_num_field('bytes allocated',
           [(wordsize(64), 33562468736, 10)
-            # 2012P-08-14: 26070600504 (amd64/Linux)
+            # 2012-08-14: 26070600504 (amd64/Linux)
             # 2012-08-29: 26353100288 (amd64/Linux, new CG)
             # 2012-09-18: 26882813032 (amd64/Linux)
             # 2012-11-12: 25990254632 (amd64/Linux)
@@ -95,14 +92,12 @@ test('haddock.compiler',
             # 2012-11-27: 28708374824 (amd64/Linux)
             # 2014-09-10: 30353349160 (amd64/Linux) post-AMP cleanup
             # 2014-11-22: 33562468736 (amd64/Linux)
-
-          ,(platform('i386-unknown-mingw32'),   902576468, 10)
+          ,(platform('i386-unknown-mingw32'), 217933548, 10)
             # 2012-10-30:                     13773051312 (x86/Windows)
             # 2013-02-10:                     14925262356 (x86/Windows)
             # 2013-11-13:                     14328363592 (x86/Windows, 64bit machine)
             # 2014-12-01:                       104140852 (x86/Windows, sudden shrinkage!)
             # 2014-12-10:                       217933548 increased again
-
           ,(wordsize(32), 15110426000, 1)])
             # 2012-08-14: 13471797488 (x86/OSX)
             # 2014-01-22: 14581475024 (x86/Linux - new haddock)