packages feed

web-routes 0.23.4 → 0.24.1

raw patch · 2 files changed

+42/−2 lines, 2 filesdep +mtlPVP ok

version bump matches the API change (PVP)

Dependencies added: mtl

API changes (from Hackage documentation)

+ Web.Routes.RouteT: instance MonadCont m => MonadCont (RouteT url m)
+ Web.Routes.RouteT: instance MonadError e m => MonadError e (RouteT url m)
+ Web.Routes.RouteT: instance MonadIO m => MonadIO (RouteT url m)
+ Web.Routes.RouteT: instance MonadRWS r w s m => MonadRWS r w s (RouteT url m)
+ Web.Routes.RouteT: instance MonadReader r m => MonadReader r (RouteT url m)
+ Web.Routes.RouteT: instance MonadState s m => MonadState s (RouteT url m)
+ Web.Routes.RouteT: instance MonadTrans (RouteT url)
+ Web.Routes.RouteT: instance MonadWriter w m => MonadWriter w (RouteT url m)

Files

Web/Routes/RouteT.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE GeneralizedNewtypeDeriving, FlexibleInstances, TypeFamilies, PackageImports, FlexibleContexts, UndecidableInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleInstances, TypeFamilies, PackageImports, FlexibleContexts, UndecidableInstances #-} ----------------------------------------------------------------------------- -- | -- Module      :  Web.Route.RouteT@@ -15,8 +15,16 @@  import Control.Applicative (Applicative((<*>), pure), Alternative((<|>), empty)) import Control.Monad (MonadPlus(mzero, mplus))+import Control.Monad.Cont(MonadCont(callCC))+import Control.Monad.Error (MonadError(throwError, catchError)) import Control.Monad.Fix (MonadFix(mfix))+import Control.Monad.Reader(MonadReader(ask,local))+import Control.Monad.RWS (MonadRWS)+import Control.Monad.State(MonadState(get,put))+import Control.Monad.Trans (MonadTrans(lift), MonadIO(liftIO))+import Control.Monad.Writer(MonadWriter(listen, tell, pass)) + -- * RouteT Monad Transformer  type Link = String@@ -64,8 +72,39 @@     mzero       = liftRouteT mzero     m `mplus` n = RouteT $ \ url -> unRouteT m url `mplus` unRouteT n url +instance (MonadCont m) => MonadCont (RouteT url m) where+    callCC f = RouteT $ \url ->+        callCC $ \c ->+        unRouteT (f (\a -> RouteT $ \_ -> c a)) url++instance (MonadError e m) => MonadError e (RouteT url m) where+  throwError = liftRouteT . throwError+  catchError action handler = RouteT $ \f -> catchError (unRouteT action f) (\e -> unRouteT (handler e) f)+ instance (MonadFix m) => MonadFix (RouteT url m) where     mfix f = RouteT $ \ url -> mfix $ \ a -> unRouteT (f a) url++instance (MonadIO m) => MonadIO (RouteT url m) where  +  liftIO = lift . liftIO++instance (MonadReader r m) => MonadReader r (RouteT url m) where+  ask   = liftRouteT ask+  local f = mapRouteT (local f)++instance (MonadRWS r w s m) => MonadRWS r w s (RouteT url m)  ++instance (MonadState s m) => MonadState s (RouteT url m) where  +  get = liftRouteT get+  put s = liftRouteT $ put s++instance MonadTrans (RouteT url) where+  lift = liftRouteT++instance (MonadWriter w m) => MonadWriter w (RouteT url m) where+  tell   w = liftRouteT $ tell w+  listen m = mapRouteT listen m+  pass   m = mapRouteT pass   m+  class ShowURL m where     type URL m
web-routes.cabal view
@@ -1,5 +1,5 @@ Name:             web-routes-Version:          0.23.4+Version:          0.24.1 License:          BSD3 License-File:     LICENSE Author:           jeremy@seereason.com@@ -15,6 +15,7 @@         Build-Depends:    base >= 4 && < 5,                           parsec >= 2 && <4,                           bytestring >= 0.9 && < 0.10,+                          mtl,                           network >= 2.2 && < 2.4,                           utf8-string >= 0.3 && < 0.4         Exposed-Modules:  Web.Routes