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

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'