Separate legacy modules into different subdirectories
authorryan.gl.scott <ryan.gl.scott@gmail.com>
Sun, 27 Sep 2015 23:41:01 +0000 (23:41 +0000)
committerryan.gl.scott <ryan.gl.scott@gmail.com>
Sun, 27 Sep 2015 23:41:01 +0000 (23:41 +0000)
`Cabal` gets confused when it has to conditionally include two different files
in the same subdirectory using different `impl(ghc >= <num>)` flags, so we
place `Data.Functor.Identity` into the `old709` directory and
`Control.Monad.IO.Class` into the `old711` directory to appease `Cabal`.

oldsrc/Control/Monad/IO/Class.hs [deleted file]
oldsrc/Data/Functor/Identity.hs [deleted file]
transformers.cabal

diff --git a/oldsrc/Control/Monad/IO/Class.hs b/oldsrc/Control/Monad/IO/Class.hs
deleted file mode 100644 (file)
index 7c74d4e..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 702
-{-# LANGUAGE Safe #-}
-#endif
-#if __GLASGOW_HASKELL__ >= 708
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE StandaloneDeriving #-}
-#endif
------------------------------------------------------------------------------
--- |
--- Module      :  Control.Monad.IO.Class
--- Copyright   :  (c) Andy Gill 2001,
---                (c) Oregon Graduate Institute of Science and Technology, 2001
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  R.Paterson@city.ac.uk
--- Stability   :  experimental
--- Portability :  portable
---
--- Class of monads based on @IO@.
------------------------------------------------------------------------------
-
-module Control.Monad.IO.Class (
-    MonadIO(..)
-  ) where
-
-#if __GLASGOW_HASKELL__ >= 708
-import Data.Typeable
-#endif
-
--- | Monads in which 'IO' computations may be embedded.
--- Any monad built by applying a sequence of monad transformers to the
--- 'IO' monad will be an instance of this class.
---
--- Instances should satisfy the following laws, which state that 'liftIO'
--- is a transformer of monads:
---
--- * @'liftIO' . 'return' = 'return'@
---
--- * @'liftIO' (m >>= f) = 'liftIO' m >>= ('liftIO' . f)@
-
-class (Monad m) => MonadIO m where
-    -- | Lift a computation from the 'IO' monad.
-    liftIO :: IO a -> m a
-
-#if __GLASGOW_HASKELL__ >= 708
-deriving instance Typeable MonadIO
-#endif
-
-instance MonadIO IO where
-    liftIO = id
diff --git a/oldsrc/Data/Functor/Identity.hs b/oldsrc/Data/Functor/Identity.hs
deleted file mode 100644 (file)
index 098ae1c..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 612
-{-# LANGUAGE DeriveDataTypeable #-}
-#endif
-#if __GLASGOW_HASKELL__ >= 702
-{-# LANGUAGE DeriveGeneric #-}
-{-# LANGUAGE Safe #-}
-#endif
-#if __GLASGOW_HASKELL__ >= 708
-{-# LANGUAGE AutoDeriveTypeable #-}
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE PolyKinds #-}
-#endif
------------------------------------------------------------------------------
--- |
--- Module      :  Data.Functor.Identity
--- Copyright   :  (c) Andy Gill 2001,
---                (c) Oregon Graduate Institute of Science and Technology 2001
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  ross@soi.city.ac.uk
--- Stability   :  experimental
--- Portability :  portable
---
--- The identity functor and monad.
---
--- This trivial type constructor serves two purposes:
---
--- * It can be used with functions parameterized by functor or monad classes.
---
--- * It can be used as a base monad to which a series of monad
---   transformers may be applied to construct a composite monad.
---   Most monad transformer modules include the special case of
---   applying the transformer to 'Identity'.  For example, @State s@
---   is an abbreviation for @StateT s 'Identity'@.
------------------------------------------------------------------------------
-
-module Data.Functor.Identity (
-    Identity(..),
-  ) where
-
-import Control.Applicative
-import Control.Monad.Fix
-#if MIN_VERSION_base(4,4,0)
-import Control.Monad.Zip (MonadZip(mzipWith, munzip))
-#endif
-import Data.Foldable (Foldable(foldMap))
-import Data.Traversable (Traversable(traverse))
-#if __GLASGOW_HASKELL__ >= 612
-import Data.Data
-#endif
-#if __GLASGOW_HASKELL__ >= 702
-import GHC.Generics
-#endif
-
--- | Identity functor and monad. (a non-strict monad)
-newtype Identity a = Identity { runIdentity :: a }
-    deriving ( Eq, Ord
-#if __GLASGOW_HASKELL__ >= 612
-             , Data, Typeable
-#endif
-#if __GLASGOW_HASKELL__ >= 702
-             , Generic
-#endif
-#if __GLASGOW_HASKELL__ >= 706
-             , Generic1
-#endif
-             )
-
--- These instances would be equivalent to the derived instances of the
--- newtype if the field were removed.
-
-instance (Read a) => Read (Identity a) where
-    readsPrec d = readParen (d > 10) $ \ r ->
-        [(Identity x,t) | ("Identity",s) <- lex r, (x,t) <- readsPrec 11 s]
-
-instance (Show a) => Show (Identity a) where
-    showsPrec d (Identity x) = showParen (d > 10) $
-        showString "Identity " . showsPrec 11 x
-
--- ---------------------------------------------------------------------------
--- Identity instances for Functor and Monad
-
-instance Functor Identity where
-    fmap f m = Identity (f (runIdentity m))
-
-instance Foldable Identity where
-    foldMap f (Identity x) = f x
-
-instance Traversable Identity where
-    traverse f (Identity x) = Identity <$> f x
-
-instance Applicative Identity where
-    pure a = Identity a
-    Identity f <*> Identity x = Identity (f x)
-
-instance Monad Identity where
-    return a = Identity a
-    m >>= k  = k (runIdentity m)
-
-instance MonadFix Identity where
-    mfix f = Identity (fix (runIdentity . f))
-
-#if MIN_VERSION_base(4,4,0)
-instance MonadZip Identity where
-    mzipWith f (Identity x) (Identity y) = Identity (f x y)
-    munzip (Identity (a, b)) = (Identity a, Identity b)
-#endif
index 5f25a57..080c355 100644 (file)
@@ -45,12 +45,12 @@ library
     -- Data.Functor.Identity was moved into base-4.8.0.0 (GHC 7.10)
     -- see also https://ghc.haskell.org/trac/ghc/ticket/9664
     -- NB: using impl(ghc>=7.9) instead of fragile Cabal flags
-    hs-source-dirs: oldsrc
+    hs-source-dirs: oldsrc709
     exposed-modules: Data.Functor.Identity
   if !impl(ghc>=7.11)
     -- Control.Monad.IO.Class was moved into base in GHC 7.12
     -- see also https://ghc.haskell.org/trac/ghc/ticket/10773
-    hs-source-dirs: oldsrc
+    hs-source-dirs: oldsrc711
     exposed-modules: Control.Monad.IO.Class
   if impl(ghc>=7.2 && <7.5)
     -- Prior to GHC 7.5, GHC.Generics lived in ghc-prim