-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Abstraction for markup languages
--
@package markup
@version 0.0.1
module Data.Markup.Types
-- | Mirror of the ReaderT monad transformer - used to coerce markup to
-- inline rendering.
newtype InlineMarkupT i m a
InlineMarkupT :: (i -> m a) -> InlineMarkupT i m a
runInlineMarkupT :: InlineMarkupT i m a -> i -> m a
-- | Mirror of the ReaderT monad transformer - used to coerce markup to
-- hosted rendering.
newtype HostedMarkupT i m a
HostedMarkupT :: (i -> m a) -> HostedMarkupT i m a
runHostedMarkupT :: HostedMarkupT i m a -> i -> m a
-- | Mirror of the ReaderT monad transformer - used to coerce markup to
-- local rendering.
newtype LocalMarkupT i m a
LocalMarkupT :: (i -> m a) -> LocalMarkupT i m a
runLocalMarkupT :: LocalMarkupT i m a -> i -> m a
instance Functor m => Functor (InlineMarkupT i m)
instance Functor m => Functor (HostedMarkupT i m)
instance Functor m => Functor (LocalMarkupT i m)
instance Monad m => MonadReader i (LocalMarkupT i m)
instance MonadTrans (LocalMarkupT i)
instance MonadPlus m => MonadPlus (LocalMarkupT i m)
instance Monad m => Monad (LocalMarkupT i m)
instance Alternative f => Alternative (LocalMarkupT i f)
instance Applicative f => Applicative (LocalMarkupT i f)
instance Monad m => MonadReader i (HostedMarkupT i m)
instance MonadTrans (HostedMarkupT i)
instance MonadPlus m => MonadPlus (HostedMarkupT i m)
instance Monad m => Monad (HostedMarkupT i m)
instance Alternative f => Alternative (HostedMarkupT i f)
instance Applicative f => Applicative (HostedMarkupT i f)
instance Monad m => MonadReader i (InlineMarkupT i m)
instance MonadTrans (InlineMarkupT i)
instance MonadPlus m => MonadPlus (InlineMarkupT i m)
instance Monad m => Monad (InlineMarkupT i m)
instance Alternative f => Alternative (InlineMarkupT i f)
instance Applicative f => Applicative (InlineMarkupT i f)
module Data.Markup.Class
-- | Overload assets and their markup library, over some deployment
class Markup markup t (m :: * -> *)
renderMarkup :: Markup markup t m => t -> m markup
-- | Assets that implement this (with their representing markup library)
-- can be rendered as Inline
class InlineMarkup markup t input
renderInline :: InlineMarkup markup t input => t -> input -> markup
-- | Assets that implement this can be rendered as hosted.
class HostedMarkup markup t input
renderHosted :: HostedMarkup markup t input => t -> input -> markup
-- | Assets that implement this can be rendered as local.
class LocalMarkup markup t input
renderLocal :: LocalMarkup markup t input => t -> input -> markup
instance (LocalMarkup markup t input, Monad m) => Markup markup t (LocalMarkupT input m)
instance (HostedMarkup markup t input, Monad m) => Markup markup t (HostedMarkupT input m)
instance (InlineMarkup markup t input, Monad m) => Markup markup t (InlineMarkupT input m)
module Data.Markup.Library
-- | Abstract data type of an "image" asset.
data Image
Image :: Image
-- | Abstract data type of javascript.
data JavaScript
JavaScript :: JavaScript
instance Show Image
instance Eq Image
instance Show JavaScript
instance Eq JavaScript
instance Url input MarkupM => LocalMarkup (MarkupM ()) JavaScript input
instance ToValue a => HostedMarkup (MarkupM ()) JavaScript a
instance ToMarkup a => InlineMarkup (MarkupM ()) JavaScript a
instance Url input MarkupM => LocalMarkup (MarkupM ()) Image input
instance ToValue a => HostedMarkup (MarkupM ()) Image a
instance (Monad m, Url input m) => LocalMarkup (HtmlT m ()) JavaScript input
instance Monad m => HostedMarkup (HtmlT m ()) JavaScript Text
instance Monad m => InlineMarkup (HtmlT m ()) JavaScript Text
instance Monad m => InlineMarkup (HtmlT m ()) JavaScript Text
instance (Monad m, Url input m) => LocalMarkup (HtmlT m ()) Image input
instance Monad m => HostedMarkup (HtmlT m ()) Image Text
module Data.Markup