diff --git a/Yesod.hs b/Yesod.hs index bc15e2d4..615a1bf6 100644 --- a/Yesod.hs +++ b/Yesod.hs @@ -1,4 +1,5 @@ {-# LANGUAGE CPP #-} +{-# LANGUAGE PackageImports #-} module Yesod ( module Yesod.Request @@ -35,4 +36,8 @@ import Yesod.Handler hiding (runHandler) import Network.Wai (Application, Method (..)) import Yesod.Hamlet import Data.Convertible.Text (cs) -import Control.Monad.IO.Class (liftIO) +#if TRANSFORMERS_02 +import "transformers" Control.Monad.IO.Class (liftIO) +#else +import "transformers" Control.Monad.Trans (liftIO) +#endif diff --git a/Yesod/Form.hs b/Yesod/Form.hs index 04f1ed9a..7ccbdc7f 100644 --- a/Yesod/Form.hs +++ b/Yesod/Form.hs @@ -1,5 +1,6 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE PackageImports #-} +{-# LANGUAGE CPP #-} -- | Parse forms (and query strings). module Yesod.Form ( Form (..) @@ -26,7 +27,11 @@ import Data.Time (Day) import Data.Convertible.Text import Control.Monad.Attempt import Data.Maybe (fromMaybe) -import "transformers" Control.Monad.IO.Class (MonadIO) +#if TRANSFORMERS_02 +import "transformers" Control.Monad.IO.Class +#else +import "transformers" Control.Monad.Trans +#endif import Yesod.Internal noParamNameError :: String diff --git a/Yesod/Handler.hs b/Yesod/Handler.hs index 974b6b0a..6c15ad83 100644 --- a/Yesod/Handler.hs +++ b/Yesod/Handler.hs @@ -6,6 +6,7 @@ {-# LANGUAGE PackageImports #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE Rank2Types #-} +{-# LANGUAGE CPP #-} --------------------------------------------------------- -- -- Module : Yesod.Handler @@ -56,7 +57,11 @@ import Web.Mime import Control.Exception hiding (Handler) import Control.Applicative +#if TRANSFORMERS_02 import "transformers" Control.Monad.IO.Class +#else +import "transformers" Control.Monad.Trans +#endif import Control.Monad.Attempt import Control.Monad (liftM, ap) diff --git a/Yesod/Request.hs b/Yesod/Request.hs index 880420ca..1f68638b 100644 --- a/Yesod/Request.hs +++ b/Yesod/Request.hs @@ -1,5 +1,6 @@ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE PackageImports #-} +{-# LANGUAGE CPP #-} --------------------------------------------------------- -- -- Module : Yesod.Request @@ -37,7 +38,11 @@ import qualified Network.Wai as W import Yesod.Definitions import Web.Encodings import qualified Data.ByteString.Lazy as BL +#if TRANSFORMERS_02 import "transformers" Control.Monad.IO.Class +#else +import "transformers" Control.Monad.Trans +#endif import Control.Monad (liftM) type ParamName = String diff --git a/yesod.cabal b/yesod.cabal index 2aee6820..0acad74e 100644 --- a/yesod.cabal +++ b/yesod.cabal @@ -19,6 +19,8 @@ extra-source-files: CLI/skel/App.hs, CLI/skel/templates/layout.st, CLI/skel/templates/homepage.st +flag transformers_02 + description: transformers = 0.2.* flag buildtests description: Build the executable to run unit tests default: False @@ -38,14 +40,13 @@ library Buildable: True build-depends: base >= 4 && < 5, time >= 1.1.3 && < 1.2, - wai >= 0.2.0 && < 0.3, - wai-extra >= 0.0.0 && < 0.3, + wai >= 0.0.0 && < 0.3, + wai-extra >= 0.0.0 && < 0.1, authenticate >= 0.6 && < 0.7, bytestring >= 0.9.1.4 && < 0.10, - web-encodings >= 0.2.4 && < 0.5, + web-encodings >= 0.2.4 && < 0.3, data-object >= 0.2.0 && < 0.3, directory >= 1 && < 1.1, - transformers >= 0.2.0 && < 0.3, control-monad-attempt >= 0.2.0 && < 0.3, text >= 0.5 && < 0.8, convertible-text >= 0.2.0 && < 0.3, @@ -53,6 +54,11 @@ library web-routes >= 0.22 && < 0.23, web-routes-quasi >= 0.0 && < 0.1, hamlet >= 0.0 && < 0.1 + if flag(transformers_02) + build-depends: transformers >= 0.2 && < 0.3 + CPP-OPTIONS: -DTRANSFORMERS_02 + else + build-depends: transformers >= 0.1 && < 0.2 exposed-modules: Yesod Yesod.Content Yesod.Definitions