web-routes-0.23.0: Library for maintaining correctness and composability of URLs within an application.

Portabilityportable
Stabilityexperimental
Maintainerpartners@seereason.com

Web.Routes.RouteT

Contents

Description

Declaration of the RouteT monad transformer

Synopsis

RouteT Monad Transformer

newtype RouteT url m a Source

monad transformer for generating URLs

Constructors

RouteT 

Fields

unRouteT :: (url -> [(String, String)] -> Link) -> m a
 

Instances

Monad m => Monad (RouteT url m) 
Functor m => Functor (RouteT url m) 
MonadFix m => MonadFix (RouteT url m) 
(MonadPlus m, Monad (RouteT url m)) => MonadPlus (RouteT url m) 
Applicative m => Applicative (RouteT url m) 
Alternative m => Alternative (RouteT url m) 
Monad m => ShowURL (RouteT url m) 

runRouteT :: RouteT url m a -> (url -> [(String, String)] -> Link) -> m aSource

mapRouteT :: (m a -> n b) -> RouteT url m a -> RouteT url n bSource

Transform the computation inside a RouteT.

withRouteT :: ((url' -> [(String, String)] -> Link) -> url -> [(String, String)] -> Link) -> RouteT url m a -> RouteT url' m aSource

Execute a computation in a modified environment

liftRouteT :: m a -> RouteT url m aSource

askRouteT :: Monad m => RouteT url m (url -> [(String, String)] -> String)Source

class ShowURL m whereSource

Associated Types

type URL m Source

Methods

showURLParamsSource

Arguments

:: URL m 
-> [(String, String)] 
-> m Link

convert a URL value into a Link (aka, a String)

Instances

Monad m => ShowURL (RouteT url m) 

showURL :: ShowURL m => URL m -> m LinkSource

convert a URL value into a Link (aka, a String)

nestURL :: Monad m => (url2 -> url1) -> RouteT url2 m a -> RouteT url1 m aSource

used to embed a RouteT into a larger parent url

crossURL :: Monad m => (url2 -> url1) -> [(String, String)] -> RouteT url1 m (url2 -> Link)Source