urlpath-0.2: Painfully simple URL writing combinators

Safe HaskellSafe-Inferred
LanguageHaskell2010

UrlPath

Synopsis

Documentation

class Url plain m => UrlReader plain m where Source

Overload deployment schemes with this - then, all that's needed is a type coercion to change deployment.

Associated Types

type Result m :: * -> * Source

Methods

runUrlReader Source

Arguments

:: Url plain m 
=> m b

MonadReader with index string and result b

-> plain

Reader index

-> Result m b

Final result

Instances

(Monad m, Monoid plain, IsString plain) => UrlReader plain (AbsoluteUrlT plain m) 
(Monad m, Monoid plain, IsString plain) => UrlReader plain (GroundedUrlT plain m) 
(Monad m, Monoid plain, IsString plain) => UrlReader plain (RelativeUrlT plain m) 

class (IsString plain, Monoid plain, MonadReader plain m) => Url plain m where Source

Url is a relationship between an underlying (monomorphic) string type plain, and a deployment context m. We try to make the deployment style coercible at the top level - if the expression has a type Url String (AbsoluteUrlT String Identity) or Monad m => Url T.Text (GroundedUrlT LT.Text m) will force /all use-cases within the expression/ to coerce to that type.

Methods

url Source

Arguments

:: UrlString plain

Url type, parameterized over a string type plain

-> m plain

Rendered Url in some context.

plainUrl Source

Arguments

:: plain

raw small string

-> m plain

Rendered string in some context.

Instances

(Monad m, Monoid plain, IsString plain) => Url plain (AbsoluteUrlT plain m) 
(Monad m, Monoid plain, IsString plain) => Url plain (GroundedUrlT plain m) 
(Monad m, Monoid plain, IsString plain) => Url plain (RelativeUrlT plain m)