hsx-jmacro-7.3.8.2: hsp+jmacro support
Safe HaskellNone
LanguageHaskell2010

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

Instances

Instances details
MonadTrans JMacroT Source # 
Instance details

Defined in HSP.JMacroT

Methods

lift :: Monad m => m a -> JMacroT m a #

(MonadReader r m, MonadWriter w m, MonadState s m) => MonadRWS r w s (JMacroT m) Source # 
Instance details

Defined in HSP.JMacroT

MonadWriter w m => MonadWriter w (JMacroT m) Source # 
Instance details

Defined in HSP.JMacroT

Methods

writer :: (a, w) -> JMacroT m a #

tell :: w -> JMacroT m () #

listen :: JMacroT m a -> JMacroT m (a, w) #

pass :: JMacroT m (a, w -> w) -> JMacroT m a #

MonadState s m => MonadState s (JMacroT m) Source # 
Instance details

Defined in HSP.JMacroT

Methods

get :: JMacroT m s #

put :: s -> JMacroT m () #

state :: (s -> (a, s)) -> JMacroT m a #

MonadReader r m => MonadReader r (JMacroT m) Source # 
Instance details

Defined in HSP.JMacroT

Methods

ask :: JMacroT m r #

local :: (r -> r) -> JMacroT m a -> JMacroT m a #

reader :: (r -> a) -> JMacroT m a #

MonadError e m => MonadError e (JMacroT m) Source # 
Instance details

Defined in HSP.JMacroT

Methods

throwError :: e -> JMacroT m a #

catchError :: JMacroT m a -> (e -> JMacroT m a) -> JMacroT m a #

Monad m => Monad (JMacroT m) Source # 
Instance details

Defined in HSP.JMacroT

Methods

(>>=) :: JMacroT m a -> (a -> JMacroT m b) -> JMacroT m b #

(>>) :: JMacroT m a -> JMacroT m b -> JMacroT m b #

return :: a -> JMacroT m a #

Functor m => Functor (JMacroT m) Source # 
Instance details

Defined in HSP.JMacroT

Methods

fmap :: (a -> b) -> JMacroT m a -> JMacroT m b #

(<$) :: a -> JMacroT m b -> JMacroT m a #

Applicative m => Applicative (JMacroT m) Source # 
Instance details

Defined in HSP.JMacroT

Methods

pure :: a -> JMacroT m a #

(<*>) :: JMacroT m (a -> b) -> JMacroT m a -> JMacroT m b #

liftA2 :: (a -> b -> c) -> JMacroT m a -> JMacroT m b -> JMacroT m c #

(*>) :: JMacroT m a -> JMacroT m b -> JMacroT m b #

(<*) :: JMacroT m a -> JMacroT m b -> JMacroT m a #

Alternative m => Alternative (JMacroT m) Source # 
Instance details

Defined in HSP.JMacroT

Methods

empty :: JMacroT m a #

(<|>) :: JMacroT m a -> JMacroT m a -> JMacroT m a #

some :: JMacroT m a -> JMacroT m [a] #

many :: JMacroT m a -> JMacroT m [a] #

MonadPlus m => MonadPlus (JMacroT m) Source # 
Instance details

Defined in HSP.JMacroT

Methods

mzero :: JMacroT m a #

mplus :: JMacroT m a -> JMacroT m a -> JMacroT m a #

MonadIO m => MonadIO (JMacroT m) Source # 
Instance details

Defined in HSP.JMacroT

Methods

liftIO :: IO a -> JMacroT m a #

(Functor m, Monad m) => XMLGen (JMacroT m) Source # 
Instance details

Defined in HSP.JMacroT

Associated Types

type XMLType (JMacroT m) #

type StringType (JMacroT m) #

data ChildType (JMacroT m) #

data AttributeType (JMacroT m) #

(Functor m, Monad m, StringType (JMacroT m) ~ Text) => XMLGenerator (JMacroT m) Source # 
Instance details

Defined in HSP.JMacroT

MonadCont m => MonadCont (JMacroT m) Source # 
Instance details

Defined in HSP.JMacroT

Methods

callCC :: ((a -> JMacroT m b) -> JMacroT m a) -> JMacroT m a #

(Functor m, Monad m) => EmbedAsChild (JMacroT m) () Source # 
Instance details

Defined in HSP.JMacroT

Methods

asChild :: () -> GenChildList (JMacroT m) #

(Functor m, Monad m) => EmbedAsChild (JMacroT m) Text Source # 
Instance details

Defined in HSP.JMacroT

Methods

asChild :: Text -> GenChildList (JMacroT m) #

(Functor m, Monad m) => EmbedAsChild (JMacroT m) Text Source # 
Instance details

Defined in HSP.JMacroT

Methods

asChild :: Text -> GenChildList (JMacroT m) #

(Functor m, Monad m, StringType (JMacroT m) ~ Text) => EmbedAsChild (JMacroT m) String Source # 
Instance details

Defined in HSP.JMacroT

(Functor m, Monad m, StringType (JMacroT m) ~ Text) => EmbedAsChild (JMacroT m) Char Source # 
Instance details

Defined in HSP.JMacroT

Methods

asChild :: Char -> GenChildList (JMacroT m) #

(Functor m, Monad m) => SetAttr (JMacroT m) JExpr Source # 
Instance details

Defined in HSP.JMacroT

(Functor m, Monad m) => AppendChild (JMacroT m) JExpr Source # 
Instance details

Defined in HSP.JMacroT

(Functor m, Monad m) => EmbedAsAttr (JMacroT m) (Attr Text Int) Source # 
Instance details

Defined in HSP.JMacroT

(Functor m, Monad m) => EmbedAsAttr (JMacroT m) (Attr Text Bool) Source # 
Instance details

Defined in HSP.JMacroT

(Functor m, Monad m) => EmbedAsAttr (JMacroT m) (Attr Text Text) Source # 
Instance details

Defined in HSP.JMacroT

ToJExpr a => ToJExpr (XMLGenT JMacroM a) Source # 
Instance details

Defined in HSP.JMacroT

newtype AttributeType (JMacroT m) Source # 
Instance details

Defined in HSP.JMacroT

newtype ChildType (JMacroT m) Source # 
Instance details

Defined in HSP.JMacroT

type StringType (JMacroT m) Source # 
Instance details

Defined in HSP.JMacroT

type XMLType (JMacroT m) Source # 
Instance details

Defined in HSP.JMacroT

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'