úÎ3M/\A      !"#$%&'()*+,-./0123456789:;<=>?@ Safe-Inferred36 uConcrete Monad for automatically coercing HtmlT's to use a mode of Url rendering (relative, grounded, or absolute). tfoo :: HtmlT RelativeUrl () foo = do url <- lift $ renderUrl $ "foo.php" <?> ("bar","baz") script_ [src_ url] ""Twhen rendering these simple monads for automatic conversion via coercion, use the  runUrlReader member function of the  UrlReader typeclass: Cbar :: LT.Text bar = (runUrlReader (renderTextT foo)) "example.com"CTo change the mode of rendering, simple change the coerced type of foo.6Rendering mode transformer. This isn't an instance of  UrlReader - to use, simple lift as many levels as you need: „foo :: Monad m => HtmlT (RelativeUrlT m) () foo = do url <- lift $ renderUrl $ "foo.php" <?> ("bar","baz") script_ [src_ url] ""When rendering foo, simply use the Transformer's run& function to convert it to a reader: Sbar :: Monad m => m LT.Text bar = (runRelativeUrlT (renderTextT foo)) "example.com"TIt is generally simpler (but more restrictive) to use the non-transformer variety.0A Url string - a target page and GET parameters.Relative base file - eg)  "foo.php" in "foo.php?bar=baz".GET Parameters.!A GET parameter encoded in a Url.Key for a get parameter.Value for the key.Render a GET parameter pair.Render a Url String simply - this is equivalent to expandRelative.:Lifts a target path with some GET parameter chunks into a  UrlString.Adds more GET parameters to a  UrlString.!Render the Url String as relative!Render the Url String as grounded HRender the Url String as absolute - getting the root from a MonadReader.!HRender the Url String as absolute, but with your own configuration type. ÿŠdata SiteConfig = SiteConfig { host :: T.Text , cdnHost :: T.Text } deriving (Show, Eq) foo :: HtmlT (Reader SiteConfig) () foo = do url <- lift $ expandAbsoluteWith ("foo.php" <?> ("bar","baz")) host script_ [src_ url] "" bar :: LT.Text bar = (runReader (runTextT foo)) $ SiteConfig "example.com" "cdn.example.com"=  Target string GET ParameterOld UrlAdditional GET Parameter !"#$%&'()*+,-./0123456789:;<"  != !<;:98 7654 3210/.-,+*)('&%$#"+    !"#$%&'()*+,-./0123456789:;<  Safe-Inferred )2346=K=Url takes an input type a, and returns a modality f around T.Text.?8Convenience typeclass for a uniform interface into pure Reader-like monads.=>Url-like type ( UrlString or T.Text).Rendered Url in some context f?@Monadic reader-like computationT.Text indexResultABCDEFGHIJKL&  !=>?@?@=>=>?@ABCDEFGHIJKLM         !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH urlpath-0.0.2 UrlPath.TypesUrlPath AbsoluteUrlrunAbsoluteUrl AbsoluteUrlTrunAbsoluteUrlT GroundedUrlrunGroundedUrl GroundedUrlTrunGroundedUrlT RelativeUrlrunRelativeUrl RelativeUrlTrunRelativeUrlT UrlStringtargetparamsGETParamkeyvalrenderGETParamrenderUrlString<&>expandRelativeexpandGroundedexpandAbsoluteexpandAbsoluteWith$fMonadReaderTextAbsoluteUrl$fMonadAbsoluteUrl$fApplicativeAbsoluteUrl$fFunctorAbsoluteUrl$fMonadReaderTextAbsoluteUrlT$fMonadTransAbsoluteUrlT$fMonadAbsoluteUrlT$fApplicativeAbsoluteUrlT$fFunctorAbsoluteUrlT$fMonadReaderTextGroundedUrl$fMonadGroundedUrl$fApplicativeGroundedUrl$fFunctorGroundedUrl$fMonadReaderTextGroundedUrlT$fMonadTransGroundedUrlT$fMonadGroundedUrlT$fApplicativeGroundedUrlT$fFunctorGroundedUrlT$fMonadReaderTextRelativeUrl$fMonadRelativeUrl$fApplicativeRelativeUrl$fFunctorRelativeUrl$fMonadReaderTextRelativeUrlT$fMonadTransRelativeUrlT$fMonadRelativeUrlT$fApplicativeRelativeUrlT$fFunctorRelativeUrlTUrl renderUrl UrlReader runUrlReader$fUrlUrlStringAbsoluteUrlT$fUrlUrlStringGroundedUrlT$fUrlUrlStringRelativeUrlT$fUrlUrlStringAbsoluteUrl$fUrlUrlStringGroundedUrl$fUrlUrlStringRelativeUrl$fUrlTextIdentity$fUrlReaderGroundedUrl$fUrlReaderRelativeUrl$fUrlReaderAbsoluteUrl$fUrlReaderIdentity$fMonadReaderTextIdentity