hsx-jmacro-7.3.7: hsp+jmacro support

Safe HaskellNone
LanguageHaskell98

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.

Synopsis

Documentation

newtype JMacroT m a Source

isomorphic to IdentityT, but used for generating javascript that generates XML/HTML

Constructors

JMacroT 

Fields

unJMacroT :: m a
 

Instances

MonadTrans JMacroT Source 
MonadRWS r w s m => MonadRWS r w s (JMacroT m) Source 
MonadError e m => MonadError e (JMacroT m) Source 
MonadReader r m => MonadReader r (JMacroT m) Source 
MonadState s m => MonadState s (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 
Alternative m => Alternative (JMacroT m) Source 
MonadPlus m => MonadPlus (JMacroT m) Source 
(Functor m, Monad m) => XMLGen (JMacroT m) Source 
(Functor m, Monad m, (~) * (StringType (JMacroT m)) Text) => XMLGenerator (JMacroT m) Source 
MonadIO m => MonadIO (JMacroT m) Source 
MonadCont m => MonadCont (JMacroT m) Source 
(Functor m, Monad m) => EmbedAsChild (JMacroT m) () Source 
(Functor m, Monad m) => EmbedAsChild (JMacroT m) Text Source 
(Functor m, Monad m) => EmbedAsChild (JMacroT m) Text Source 
(Functor m, Monad m, (~) * (StringType (JMacroT m)) Text) => EmbedAsChild (JMacroT m) String Source 
(Functor m, Monad m, (~) * (StringType (JMacroT m)) Text) => EmbedAsChild (JMacroT m) Char 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 
(Functor m, Monad m) => EmbedAsAttr (JMacroT m) (Attr Text Bool) Source 
(Functor m, Monad m) => EmbedAsAttr (JMacroT m) (Attr Text Text) Source 
ToJExpr a => ToJExpr (XMLGenT JMacroM a) Source 
data AttributeType (JMacroT m) = JMAttr {} Source 
data ChildType (JMacroT m) = JMChild {} Source 
type StringType (JMacroT m) = Text Source 
type XMLType (JMacroT m) = JExpr Source 

evalJMacroT :: XMLGenT (JMacroT m) JExpr -> m JExpr Source

unwrap the XMLGenT and JMacroT constructors

mapJMacroT :: (m a -> n b) -> JMacroT m a -> JMacroT n b Source

map a function over the inner monad

type JMacroM = JMacroT Identity Source

an alias for 'JMacroT Identity'