on master help sign in
Fix for ghc < 7.10
commitab2d1bedc0cb154b5c20a7f1351256c76ec7d248 authorDavid Baynard <davidbaynard@gmail.com> dateWed 24 Aug 2016, 14:46 (10 years ago) parent38f6968
1 file changed+9−3
wai-extra/Network/Wai/Middleware/Rewrite.hs+9−3
wai-extra/Network/Wai/Middleware/Rewrite.hs+9−3
@@ -1,4 +1,5 @@
11{-# LANGUAGE TupleSections #-}
2+{-# LANGUAGE CPP #-}
23
34module Network.Wai.Middleware.Rewrite
45 ( rewrite
@@ -17,6 +18,11 @@ import qualified Data.Text.Encoding as TE
1718import qualified Data.Text as T
1819import Network.HTTP.Types as H
1920
21+-- GHC ≤ 7.10 does not export Applicative functions from the prelude.
22+#if __GLASGOW_HASKELL__ <= 710
23+import Control.Applicative
24+#endif
25+
2026-- | A tuple of the path sections as '[Text]' and query parameters as
2127-- 'H.QueryText'.
2228type PathsAndQueries = ([Text], H.QueryText)
@@ -85,7 +91,7 @@ rewriteRequestPure convert req =
8591 in runIdentity $ rewriteRequestRawM convertPure req
8692
8793-- | This helper function factors out the common behaviour of rewriting requests.
88−rewriteRequestM :: Monad m
94+rewriteRequestM :: (Applicative m, Monad m)
8995 => (PathsAndQueries -> H.RequestHeaders -> m PathsAndQueries)
9096 -> Request -> m Request
9197rewriteRequestM convert req = do
@@ -98,7 +104,7 @@ rewriteRequestM convert req = do
98104-- which the rewrite functions modify the `rawPathInfo` parameter. Note
99105-- that this has not been extended to modify the `rawQueryInfo` as
100106-- modifying either of these values has been deprecated.
101−rewriteRequestRawM :: Monad m
107+rewriteRequestRawM :: (Applicative m, Monad m)
102108 => (PathsAndQueries -> H.RequestHeaders -> m PathsAndQueries)
103109 -> Request -> m Request
104110rewriteRequestRawM convert req = do
@@ -108,7 +114,7 @@ rewriteRequestRawM convert req = do
108114
109115-- | Produce a function that works on 'PathsandQueries' from one working
110116-- only on paths.
111−pathsOnly :: Monad m
117+pathsOnly :: (Applicative m, Monad m)
112118 => ([Text] -> H.RequestHeaders -> m [Text])
113119 -> PathsAndQueries -> H.RequestHeaders -> m PathsAndQueries
114120pathsOnly convert paths headers = (,[]) <$> convert (fst paths) headers