| hsx-0.4.8: HSX (Haskell Source with XML) allows literal XML syntax to be used in Haskell source code. | Source code | Contents | Index |
|
HSX.XMLGenerator | Portability | requires newtype deriving and MPTCs with fundeps | Stability | experimental | Maintainer | Niklas Broberg, nibro@cs.chalmers.se |
|
|
|
Description |
The class and monad transformer that forms the basis of the literal XML
syntax translation. Literal tags will be translated into functions of
the GenerateXML class, and any instantiating monads with associated XML
types can benefit from that syntax.
|
|
Synopsis |
|
newtype XMLGenT m a = XMLGenT (m a) | | unXMLGenT :: XMLGenT m a -> m a | | type Name = (Maybe String, String) | | class Monad m => XMLGen m where | | | type GenXML m = XMLGenT m (XML m) | | type GenXMLList m = XMLGenT m [XML m] | | type GenChild m = XMLGenT m (Child m) | | type GenChildList m = XMLGenT m [Child m] | | type GenAttribute m = XMLGenT m (Attribute m) | | type GenAttributeList m = XMLGenT m [Attribute m] | | class XMLGen m => EmbedAsChild m c where | | | class XMLGen m => EmbedAsAttr m a where | | | class (XMLGen m, SetAttr m (XML m), AppendChild m (XML m), EmbedAsChild m String, EmbedAsChild m Char, EmbedAsAttr m (Attr String String), EmbedAsAttr m (Attr String Int), EmbedAsAttr m (Attr String Bool)) => XMLGenerator m | | data Attr n a = n := a | | class XMLGen m => SetAttr m elem where | | | set :: (SetAttr m elem, EmbedAsAttr m attr) => elem -> attr -> GenXML m | | (<@) :: (SetAttr m elem, EmbedAsAttr m attr) => elem -> attr -> GenXML m | | (<<@) :: (SetAttr m elem, EmbedAsAttr m a) => elem -> [a] -> GenXML m | | class XMLGen m => AppendChild m elem where | | | app :: (AppendChild m elem, EmbedAsChild m c) => elem -> c -> GenXML m | | (<:) :: (AppendChild m elem, EmbedAsChild m c) => elem -> c -> GenXML m | | (<<:) :: (AppendChild m elem, EmbedAsChild m c) => elem -> [c] -> GenXML m | | class Show n => IsName n where | | | class TypeCast a b | a -> b, b -> a where | | | class TypeCast' t a b | t a -> b, t b -> a where | | | class TypeCast'' t a b | t a -> b, t b -> a where | | | class TypeCastM ma mb | ma -> mb, mb -> ma where | | | class TypeCastM' t ma mb | t ma -> mb, t mb -> ma where | | | class TypeCastM'' t ma mb | t ma -> mb, t mb -> ma where | |
|
|
Documentation |
|
|
The monad transformer that allows a monad to generate XML values.
| Constructors | | Instances | |
|
|
|
un-lift.
|
|
|
|
|
Generate XML values in some XMLGenerator monad.
| | Associated Types | | | Methods | |
|
|
|
Type synonyms to avoid writing out the XMLnGenT all the time
|
|
|
|
|
|
|
|
|
|
|
|
|
Embed values as child nodes of an XML element. The parent type will be clear
from the context so it is not mentioned.
| | Methods | | | Instances | |
|
|
|
Similarly embed values as attributes of an XML element.
| | Methods | | | Instances | |
|
|
|
|
|
|
Constructors | | Instances | |
|
|
|
Set attributes on XML elements
| | Methods | | | Instances | |
|
|
|
|
|
|
|
|
|
| Methods | | | Instances | |
|
|
|
|
|
|
|
|
|
Names can be simple or qualified with a domain. We want to conveniently
use both simple strings or pairs wherever a Name is expected.
| | Methods | | | Instances | |
|
|
class TypeCast a b | a -> b, b -> a where | Source |
|
| Methods | | | Instances | |
|
|
class TypeCast' t a b | t a -> b, t b -> a where | Source |
|
| Methods | typeCast' :: t -> a -> b | Source |
|
| | Instances | |
|
|
class TypeCast'' t a b | t a -> b, t b -> a where | Source |
|
| Methods | typeCast'' :: t -> a -> b | Source |
|
| | Instances | |
|
|
class TypeCastM ma mb | ma -> mb, mb -> ma where | Source |
|
| Methods | typeCastM :: ma x -> mb x | Source |
|
| | Instances | |
|
|
class TypeCastM' t ma mb | t ma -> mb, t mb -> ma where | Source |
|
| Methods | typeCastM' :: t -> ma x -> mb x | Source |
|
| | Instances | |
|
|
class TypeCastM'' t ma mb | t ma -> mb, t mb -> ma where | Source |
|
| Methods | typeCastM'' :: t -> ma x -> mb x | Source |
|
| | Instances | |
|
|
Produced by Haddock version 2.6.0 |