urlpath 3.1.1 → 3.2.0
raw patch · 2 files changed
+67/−6 lines, 2 files
Files
- src/Data/Url.hs +66/−5
- urlpath.cabal +1/−1
src/Data/Url.hs view
@@ -1,11 +1,12 @@ {-# LANGUAGE- KindSignatures+ TypeFamilies+ , DeriveFunctor+ , KindSignatures+ , FlexibleInstances+ , TypeSynonymInstances+ , UndecidableInstances , MultiParamTypeClasses , FunctionalDependencies- , TypeFamilies- , TypeSynonymInstances- , FlexibleInstances- , DeriveFunctor #-} module Data.Url where@@ -14,6 +15,9 @@ import Data.Functor.Identity import Control.Monad.Trans+import Control.Monad.Reader+import Control.Monad.Writer+import Control.Monad.State -- * Classes@@ -111,7 +115,26 @@ type RunUrlReader (RelativeUrlT m) = m runUrlReader = runRelativeUrlT +instance ( MonadReader r m+ ) => MonadReader r (RelativeUrlT m) where+ ask = lift ask+ local f (RelativeUrlT x) = RelativeUrlT $ \r ->+ local f (x r) +instance ( MonadWriter w m+ ) => MonadWriter w (RelativeUrlT m) where+ tell w = lift (tell w)+ listen (RelativeUrlT x) = RelativeUrlT $ \r ->+ listen (x r)+ pass (RelativeUrlT x) = RelativeUrlT $ \r ->+ pass (x r)++instance ( MonadState s m+ ) => MonadState s (RelativeUrlT m) where+ get = lift get+ put x = lift (put x)++ -- ** Grounded Urls newtype GroundedUrlT m a = GroundedUrlT@@ -146,7 +169,26 @@ type RunUrlReader (GroundedUrlT m) = m runUrlReader = runGroundedUrlT +instance ( MonadReader r m+ ) => MonadReader r (GroundedUrlT m) where+ ask = lift ask+ local f (GroundedUrlT x) = GroundedUrlT $ \r ->+ local f (x r) +instance ( MonadWriter w m+ ) => MonadWriter w (GroundedUrlT m) where+ tell w = lift (tell w)+ listen (GroundedUrlT x) = GroundedUrlT $ \r ->+ listen (x r)+ pass (GroundedUrlT x) = GroundedUrlT $ \r ->+ pass (x r)++instance ( MonadState s m+ ) => MonadState s (GroundedUrlT m) where+ get = lift get+ put x = lift (put x)++ -- ** Absolute Urls newtype AbsoluteUrlT m a = AbsoluteUrlT@@ -180,3 +222,22 @@ instance UrlReader (AbsoluteUrlT m) where type RunUrlReader (AbsoluteUrlT m) = m runUrlReader = runAbsoluteUrlT++instance ( MonadReader r m+ ) => MonadReader r (AbsoluteUrlT m) where+ ask = lift ask+ local f (AbsoluteUrlT x) = AbsoluteUrlT $ \r ->+ local f (x r)++instance ( MonadWriter w m+ ) => MonadWriter w (AbsoluteUrlT m) where+ tell w = lift (tell w)+ listen (AbsoluteUrlT x) = AbsoluteUrlT $ \r ->+ listen (x r)+ pass (AbsoluteUrlT x) = AbsoluteUrlT $ \r ->+ pass (x r)++instance ( MonadState s m+ ) => MonadState s (AbsoluteUrlT m) where+ get = lift get+ put x = lift (put x)
urlpath.cabal view
@@ -1,5 +1,5 @@ Name: urlpath-Version: 3.1.1+Version: 3.2.0 Author: Athan Clark <athan.clark@gmail.com> Maintainer: Athan Clark <athan.clark@gmail.com> License: MIT