-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Painfully simple URL deployment.
--
-- Please see the README on Github at
-- https://github.com/athanclark/urlpath#readme
@package urlpath
@version 11.0.2
-- | This library helps us distinguish how we present URLs - we might show
-- them relatively, absolutely (with the URI authority - scheme, port,
-- hostname, etc.), or grounded - where the path begins with
-- /.
--
-- We leverage Chris Done's path library to distinguish relative
-- vs. grounded paths at compile time, and provide some additional
-- features like a file extension and query parameters in
-- path-extra.
module Data.Url
-- | Turns a Path or Location into a String, where the
-- rendering behavior (relative, grounded and absolute) is encoded in the
-- monad you use, much like LoggingT and NoLoggingT
-- from monad-logger.
class MonadUrl base (m :: * -> *) | m -> base
-- | Create a URL from a Location - either a directory or
-- file, and can include query strings & fragments.
locToUrl :: MonadUrl base m => Location base -> m URL
-- | Either a URI (which could include a hostname), or a relative url.
data URL
AbsURL :: URI -> URL
RelURL :: Location Rel -> URL
printURL :: URL -> Text
-- | When printing a URL generated by a Location in this
-- context, they will always omit the hostname information and print path
-- references relatively (without ./).
newtype RelativeUrlT m a
RelativeUrlT :: m a -> RelativeUrlT m a
[runRelativeUrlT] :: RelativeUrlT m a -> m a
type RelativeUrl = RelativeUrlT Identity
-- | Grounded urls mean that, while omiting host information, paths
-- start with a /, like /foo.
newtype GroundedUrlT m a
GroundedUrlT :: m a -> GroundedUrlT m a
[runGroundedUrlT] :: GroundedUrlT m a -> m a
type GroundedUrl = GroundedUrlT Identity
-- | Given a means to take an absolute location and turn it into an URI,
-- make a monad used to construct urls. You can use packLocation
-- to create the Location Abs -> URI function.
newtype AbsoluteUrlT m a
AbsoluteUrlT :: ((Location Abs -> URI) -> m a) -> AbsoluteUrlT m a
[runAbsoluteUrlT] :: AbsoluteUrlT m a -> (Location Abs -> URI) -> m a
type AbsoluteUrl = AbsoluteUrlT Identity
mkUriLocEmpty :: Location Abs -> URI
getPathChunks :: Path base type' -> Vector Text
packLocation :: Maybe Text -> Bool -> URIAuth -> Location Abs -> URI
unpackLocation :: URI -> (Maybe Text, Bool, URIAuth, Location Abs)
instance Control.Monad.Logger.MonadLogger m => Control.Monad.Logger.MonadLogger (Data.Url.RelativeUrlT m)
instance Control.Monad.Catch.MonadMask m => Control.Monad.Catch.MonadMask (Data.Url.RelativeUrlT m)
instance Control.Monad.Catch.MonadCatch m => Control.Monad.Catch.MonadCatch (Data.Url.RelativeUrlT m)
instance Control.Monad.Catch.MonadThrow m => Control.Monad.Catch.MonadThrow (Data.Url.RelativeUrlT m)
instance Control.Monad.Base.MonadBase b m => Control.Monad.Base.MonadBase b (Data.Url.RelativeUrlT m)
instance Control.Monad.Error.Class.MonadError e m => Control.Monad.Error.Class.MonadError e (Data.Url.RelativeUrlT m)
instance Control.Monad.Cont.Class.MonadCont m => Control.Monad.Cont.Class.MonadCont (Data.Url.RelativeUrlT m)
instance (Control.Monad.Reader.Class.MonadReader r m, Control.Monad.Writer.Class.MonadWriter w m, Control.Monad.State.Class.MonadState s m) => Control.Monad.RWS.Class.MonadRWS r w s (Data.Url.RelativeUrlT m)
instance Control.Monad.State.Class.MonadState s m => Control.Monad.State.Class.MonadState s (Data.Url.RelativeUrlT m)
instance Control.Monad.Writer.Class.MonadWriter w m => Control.Monad.Writer.Class.MonadWriter w (Data.Url.RelativeUrlT m)
instance Control.Monad.Reader.Class.MonadReader r m => Control.Monad.Reader.Class.MonadReader r (Data.Url.RelativeUrlT m)
instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Data.Url.RelativeUrlT m)
instance GHC.Base.MonadPlus m => GHC.Base.MonadPlus (Data.Url.RelativeUrlT m)
instance Control.Monad.Fix.MonadFix m => Control.Monad.Fix.MonadFix (Data.Url.RelativeUrlT m)
instance GHC.Base.Monad m => GHC.Base.Monad (Data.Url.RelativeUrlT m)
instance GHC.Base.Alternative m => GHC.Base.Alternative (Data.Url.RelativeUrlT m)
instance GHC.Base.Applicative m => GHC.Base.Applicative (Data.Url.RelativeUrlT m)
instance GHC.Base.Functor m => GHC.Base.Functor (Data.Url.RelativeUrlT m)
instance GHC.Classes.Ord (m a) => GHC.Classes.Ord (Data.Url.RelativeUrlT m a)
instance GHC.Classes.Eq (m a) => GHC.Classes.Eq (Data.Url.RelativeUrlT m a)
instance GHC.Show.Show (m a) => GHC.Show.Show (Data.Url.RelativeUrlT m a)
instance Control.Monad.Logger.MonadLogger m => Control.Monad.Logger.MonadLogger (Data.Url.GroundedUrlT m)
instance Control.Monad.Catch.MonadMask m => Control.Monad.Catch.MonadMask (Data.Url.GroundedUrlT m)
instance Control.Monad.Catch.MonadCatch m => Control.Monad.Catch.MonadCatch (Data.Url.GroundedUrlT m)
instance Control.Monad.Catch.MonadThrow m => Control.Monad.Catch.MonadThrow (Data.Url.GroundedUrlT m)
instance Control.Monad.Base.MonadBase b m => Control.Monad.Base.MonadBase b (Data.Url.GroundedUrlT m)
instance Control.Monad.Error.Class.MonadError e m => Control.Monad.Error.Class.MonadError e (Data.Url.GroundedUrlT m)
instance Control.Monad.Cont.Class.MonadCont m => Control.Monad.Cont.Class.MonadCont (Data.Url.GroundedUrlT m)
instance (Control.Monad.Reader.Class.MonadReader r m, Control.Monad.Writer.Class.MonadWriter w m, Control.Monad.State.Class.MonadState s m) => Control.Monad.RWS.Class.MonadRWS r w s (Data.Url.GroundedUrlT m)
instance Control.Monad.State.Class.MonadState s m => Control.Monad.State.Class.MonadState s (Data.Url.GroundedUrlT m)
instance Control.Monad.Writer.Class.MonadWriter w m => Control.Monad.Writer.Class.MonadWriter w (Data.Url.GroundedUrlT m)
instance Control.Monad.Reader.Class.MonadReader r m => Control.Monad.Reader.Class.MonadReader r (Data.Url.GroundedUrlT m)
instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Data.Url.GroundedUrlT m)
instance GHC.Base.MonadPlus m => GHC.Base.MonadPlus (Data.Url.GroundedUrlT m)
instance Control.Monad.Fix.MonadFix m => Control.Monad.Fix.MonadFix (Data.Url.GroundedUrlT m)
instance GHC.Base.Monad m => GHC.Base.Monad (Data.Url.GroundedUrlT m)
instance GHC.Base.Alternative m => GHC.Base.Alternative (Data.Url.GroundedUrlT m)
instance GHC.Base.Applicative m => GHC.Base.Applicative (Data.Url.GroundedUrlT m)
instance GHC.Base.Functor m => GHC.Base.Functor (Data.Url.GroundedUrlT m)
instance GHC.Classes.Ord (m a) => GHC.Classes.Ord (Data.Url.GroundedUrlT m a)
instance GHC.Classes.Eq (m a) => GHC.Classes.Eq (Data.Url.GroundedUrlT m a)
instance GHC.Show.Show (m a) => GHC.Show.Show (Data.Url.GroundedUrlT m a)
instance GHC.Base.Functor m => GHC.Base.Functor (Data.Url.AbsoluteUrlT m)
instance (Control.Monad.Trans.Resource.Internal.MonadResource m, Control.Monad.Base.MonadBase GHC.Types.IO m) => Control.Monad.Trans.Resource.Internal.MonadResource (Data.Url.RelativeUrlT m)
instance (Control.Monad.Trans.Resource.Internal.MonadResource m, Control.Monad.Base.MonadBase GHC.Types.IO m) => Control.Monad.Trans.Resource.Internal.MonadResource (Data.Url.GroundedUrlT m)
instance GHC.Base.Applicative m => Data.Url.MonadUrl Path.Posix.Abs (Data.Url.AbsoluteUrlT m)
instance GHC.Base.Applicative m => GHC.Base.Applicative (Data.Url.AbsoluteUrlT m)
instance GHC.Base.Alternative m => GHC.Base.Alternative (Data.Url.AbsoluteUrlT m)
instance GHC.Base.Monad m => GHC.Base.Monad (Data.Url.AbsoluteUrlT m)
instance Control.Monad.Trans.Class.MonadTrans Data.Url.AbsoluteUrlT
instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Data.Url.AbsoluteUrlT m)
instance Control.Monad.Reader.Class.MonadReader r m => Control.Monad.Reader.Class.MonadReader r (Data.Url.AbsoluteUrlT m)
instance Control.Monad.Writer.Class.MonadWriter w m => Control.Monad.Writer.Class.MonadWriter w (Data.Url.AbsoluteUrlT m)
instance Control.Monad.State.Class.MonadState s m => Control.Monad.State.Class.MonadState s (Data.Url.AbsoluteUrlT m)
instance Control.Monad.RWS.Class.MonadRWS r w s m => Control.Monad.RWS.Class.MonadRWS r w s (Data.Url.AbsoluteUrlT m)
instance Control.Monad.Cont.Class.MonadCont m => Control.Monad.Cont.Class.MonadCont (Data.Url.AbsoluteUrlT m)
instance Control.Monad.Error.Class.MonadError e m => Control.Monad.Error.Class.MonadError e (Data.Url.AbsoluteUrlT m)
instance Control.Monad.Base.MonadBase b m => Control.Monad.Base.MonadBase b (Data.Url.AbsoluteUrlT m)
instance Control.Monad.Trans.Control.MonadTransControl Data.Url.AbsoluteUrlT
instance Control.Monad.Trans.Control.Aligned.MonadTransControl Data.Url.AbsoluteUrlT Data.Functor.Identity.Identity
instance Control.Monad.Trans.Control.MonadBaseControl b m => Control.Monad.Trans.Control.MonadBaseControl b (Data.Url.AbsoluteUrlT m)
instance Control.Monad.Trans.Control.Aligned.MonadBaseControl b m stM => Control.Monad.Trans.Control.Aligned.MonadBaseControl b (Data.Url.AbsoluteUrlT m) (Data.Functor.Compose.Compose stM Data.Functor.Identity.Identity)
instance Control.Monad.Catch.MonadThrow m => Control.Monad.Catch.MonadThrow (Data.Url.AbsoluteUrlT m)
instance Control.Monad.Catch.MonadCatch m => Control.Monad.Catch.MonadCatch (Data.Url.AbsoluteUrlT m)
instance Control.Monad.Catch.MonadMask m => Control.Monad.Catch.MonadMask (Data.Url.AbsoluteUrlT m)
instance Control.Monad.Logger.MonadLogger m => Control.Monad.Logger.MonadLogger (Data.Url.AbsoluteUrlT m)
instance Control.Monad.Trans.Resource.Internal.MonadResource m => Control.Monad.Trans.Resource.Internal.MonadResource (Data.Url.AbsoluteUrlT m)
instance Control.Monad.Morph.MFunctor Data.Url.AbsoluteUrlT
instance Control.Monad.Morph.MMonad Data.Url.AbsoluteUrlT
instance Control.Monad.Trans.Class.MonadTrans Data.Url.GroundedUrlT
instance Control.Monad.Trans.Control.MonadTransControl Data.Url.GroundedUrlT
instance Control.Monad.Trans.Control.Aligned.MonadTransControl Data.Url.GroundedUrlT Data.Functor.Identity.Identity
instance Control.Monad.Trans.Control.MonadBaseControl b m => Control.Monad.Trans.Control.MonadBaseControl b (Data.Url.GroundedUrlT m)
instance Control.Monad.Trans.Control.Aligned.MonadBaseControl b m stM => Control.Monad.Trans.Control.Aligned.MonadBaseControl b (Data.Url.GroundedUrlT m) (Data.Functor.Compose.Compose stM Data.Functor.Identity.Identity)
instance Control.Monad.Morph.MFunctor Data.Url.GroundedUrlT
instance Control.Monad.Morph.MMonad Data.Url.GroundedUrlT
instance GHC.Base.Applicative m => Data.Url.MonadUrl Path.Posix.Abs (Data.Url.GroundedUrlT m)
instance Control.Monad.Trans.Class.MonadTrans Data.Url.RelativeUrlT
instance Control.Monad.Trans.Control.MonadTransControl Data.Url.RelativeUrlT
instance Control.Monad.Trans.Control.Aligned.MonadTransControl Data.Url.RelativeUrlT Data.Functor.Identity.Identity
instance Control.Monad.Trans.Control.MonadBaseControl b m => Control.Monad.Trans.Control.MonadBaseControl b (Data.Url.RelativeUrlT m)
instance Control.Monad.Trans.Control.Aligned.MonadBaseControl b m stM => Control.Monad.Trans.Control.Aligned.MonadBaseControl b (Data.Url.RelativeUrlT m) (Data.Functor.Compose.Compose stM Data.Functor.Identity.Identity)
instance Control.Monad.Morph.MFunctor Data.Url.RelativeUrlT
instance Control.Monad.Morph.MMonad Data.Url.RelativeUrlT
instance GHC.Base.Applicative m => Data.Url.MonadUrl Path.Posix.Rel (Data.Url.RelativeUrlT m)
instance Data.Url.MonadUrl Path.Posix.Rel GHC.Types.IO
instance (Data.Url.MonadUrl base m, GHC.Base.Monad m) => Data.Url.MonadUrl base (Control.Monad.Trans.Maybe.MaybeT m)
instance (Data.Url.MonadUrl base m, GHC.Base.Monad m) => Data.Url.MonadUrl base (Control.Monad.Trans.List.ListT m)
instance (Data.Url.MonadUrl base m, GHC.Base.Monad m) => Data.Url.MonadUrl base (Control.Monad.Trans.Resource.Internal.ResourceT m)
instance (Data.Url.MonadUrl base m, GHC.Base.Monad m) => Data.Url.MonadUrl base (Control.Monad.Trans.Identity.IdentityT m)
instance (Data.Url.MonadUrl base m, GHC.Base.Monad m) => Data.Url.MonadUrl base (Control.Monad.Logger.LoggingT m)
instance (Data.Url.MonadUrl base m, GHC.Base.Monad m) => Data.Url.MonadUrl base (Control.Monad.Logger.NoLoggingT m)
instance (Data.Url.MonadUrl base m, GHC.Base.Monad m) => Data.Url.MonadUrl base (Control.Monad.Trans.Reader.ReaderT r m)
instance (Data.Url.MonadUrl base m, GHC.Base.Monad m, GHC.Base.Monoid w) => Data.Url.MonadUrl base (Control.Monad.Trans.Writer.Lazy.WriterT w m)
instance (Data.Url.MonadUrl base m, GHC.Base.Monad m) => Data.Url.MonadUrl base (Control.Monad.Trans.State.Lazy.StateT s m)
instance (Data.Url.MonadUrl base m, GHC.Base.Monad m) => Data.Url.MonadUrl base (Control.Monad.Trans.Cont.ContT r m)
instance (Data.Url.MonadUrl base m, GHC.Base.Monad m) => Data.Url.MonadUrl base (Control.Monad.Trans.Except.ExceptT e m)
instance (Data.Url.MonadUrl base m, GHC.Base.Monad m, GHC.Base.Monoid w) => Data.Url.MonadUrl base (Control.Monad.Trans.RWS.Lazy.RWST r w s m)