Safe Haskell | None |
---|---|
Language | Haskell98 |
HSP.JMacroT
Description
This experimental module provides a monad transformer JMacroT
and corresponding XMLGenerator
instance which can be used to
directly generate javascript which builds an XML/HTML DOM.
This is similar to the 'ToJExpr XMLToDOM' instance except that
there is no intermediate XML type. The XMLGenerator
instance
directly generates the javascript needed to build the DOM.
This is intellectually fun. But it is not clear how it is valuable. That is why this module is marked as experimental.
Documentation
isomorphic to IdentityT, but used for generating javascript that generates XML/HTML
Instances
MonadTrans JMacroT Source # | |
Defined in HSP.JMacroT | |
(MonadReader r m, MonadWriter w m, MonadState s m) => MonadRWS r w s (JMacroT m) Source # | |
Defined in HSP.JMacroT | |
MonadState s m => MonadState s (JMacroT m) Source # | |
MonadError e m => MonadError e (JMacroT m) Source # | |
Defined in HSP.JMacroT | |
MonadReader r m => MonadReader r (JMacroT m) Source # | |
MonadWriter w m => MonadWriter w (JMacroT m) Source # | |
Monad m => Monad (JMacroT m) Source # | |
Functor m => Functor (JMacroT m) Source # | |
Applicative m => Applicative (JMacroT m) Source # | |
(Functor m, Monad m) => XMLGen (JMacroT m) Source # | |
Defined in HSP.JMacroT Associated Types type XMLType (JMacroT m) Source # type StringType (JMacroT m) Source # data ChildType (JMacroT m) Source # data AttributeType (JMacroT m) Source # Methods genElement :: Name (StringType (JMacroT m)) -> [XMLGenT (JMacroT m) [AttributeType (JMacroT m)]] -> [XMLGenT (JMacroT m) [ChildType (JMacroT m)]] -> XMLGenT (JMacroT m) (XMLType (JMacroT m)) Source # genEElement :: Name (StringType (JMacroT m)) -> [XMLGenT (JMacroT m) [AttributeType (JMacroT m)]] -> XMLGenT (JMacroT m) (XMLType (JMacroT m)) Source # xmlToChild :: XMLType (JMacroT m) -> ChildType (JMacroT m) Source # pcdataToChild :: StringType (JMacroT m) -> ChildType (JMacroT m) Source # | |
(Functor m, Monad m, StringType (JMacroT m) ~ Text) => XMLGenerator (JMacroT m) Source # | |
Defined in HSP.JMacroT | |
MonadPlus m => MonadPlus (JMacroT m) Source # | |
MonadIO m => MonadIO (JMacroT m) Source # | |
Defined in HSP.JMacroT | |
Alternative m => Alternative (JMacroT m) Source # | |
MonadCont m => MonadCont (JMacroT m) Source # | |
Defined in HSP.JMacroT | |
(Functor m, Monad m) => EmbedAsChild (JMacroT m) () Source # | |
Defined in HSP.JMacroT Methods asChild :: () -> GenChildList (JMacroT m) Source # | |
(Functor m, Monad m) => EmbedAsChild (JMacroT m) Text Source # | |
Defined in HSP.JMacroT Methods asChild :: Text -> GenChildList (JMacroT m) Source # | |
(Functor m, Monad m) => EmbedAsChild (JMacroT m) Text Source # | |
Defined in HSP.JMacroT Methods asChild :: Text -> GenChildList (JMacroT m) Source # | |
(Functor m, Monad m, StringType (JMacroT m) ~ Text) => EmbedAsChild (JMacroT m) String Source # | |
Defined in HSP.JMacroT Methods asChild :: String -> GenChildList (JMacroT m) Source # | |
(Functor m, Monad m, StringType (JMacroT m) ~ Text) => EmbedAsChild (JMacroT m) Char Source # | |
Defined in HSP.JMacroT Methods asChild :: Char -> GenChildList (JMacroT m) Source # | |
(Functor m, Monad m) => SetAttr (JMacroT m) JExpr Source # | |
(Functor m, Monad m) => AppendChild (JMacroT m) JExpr Source # | |
(Functor m, Monad m) => EmbedAsAttr (JMacroT m) (Attr Text Int) Source # | |
Defined in HSP.JMacroT | |
(Functor m, Monad m) => EmbedAsAttr (JMacroT m) (Attr Text Bool) Source # | |
Defined in HSP.JMacroT | |
(Functor m, Monad m) => EmbedAsAttr (JMacroT m) (Attr Text Text) Source # | |
Defined in HSP.JMacroT | |
ToJExpr a => ToJExpr (XMLGenT JMacroM a) Source # | |
newtype AttributeType (JMacroT m) Source # | |
Defined in HSP.JMacroT | |
newtype ChildType (JMacroT m) Source # | |
type StringType (JMacroT m) Source # | |
Defined in HSP.JMacroT | |
type XMLType (JMacroT m) Source # | |
Defined in HSP.JMacroT |
mapJMacroT :: (m a -> n b) -> JMacroT m a -> JMacroT n b Source #
map a function over the inner monad