hsp-0.10.0: Haskell Server Pages is a library for writing dynamic server-side web pages.

Copyright | (c) Niklas Broberg 2008-2013
License | BSD-style (see the file LICENSE.txt)
Maintainer | Niklas Broberg <niklas.broberg@gmail.com>
Stability | experimental
Portability | requires newtype deriving and MPTCs with fundeps and type families
Safe Haskell | None
Language | Haskell98

HSP.XMLGenerator

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
- mapXMLGenT :: (m a -> n b) -> XMLGenT m a -> XMLGenT n b
- type Name a = (Maybe a, a)
- class Monad m => XMLGen m where
  - type XMLType m
  - type StringType m
  - data ChildType m
  - data AttributeType m
  - genElement :: Name (StringType m) -> [XMLGenT m [AttributeType m]] -> [XMLGenT m [ChildType m]] -> XMLGenT m (XMLType m)
  - genEElement :: Name (StringType m) -> [XMLGenT m [AttributeType m]] -> XMLGenT m (XMLType m)
  - xmlToChild :: XMLType m -> ChildType m
  - pcdataToChild :: StringType m -> ChildType m
- type GenXML m = XMLGenT m (XMLType m)
- type GenXMLList m = XMLGenT m [XMLType m]
- type GenChild m = XMLGenT m (ChildType m)
- type GenChildList m = XMLGenT m [ChildType m]
- type GenAttribute m = XMLGenT m (AttributeType m)
- type GenAttributeList m = XMLGenT m [AttributeType m]
- class XMLGen m => EmbedAsChild m c where
  - asChild :: c -> GenChildList m
- data Attr n a = n := a
- class XMLGen m => EmbedAsAttr m a where
  - asAttr :: a -> GenAttributeList m
- class (XMLGen m, SetAttr m (XMLType m), AppendChild m (XMLType m), EmbedAsChild m (XMLType m), EmbedAsChild m [XMLType m], EmbedAsChild m Text, EmbedAsChild m Char, EmbedAsChild m (), EmbedAsAttr m (Attr Text Text), EmbedAsAttr m (Attr Text Int), EmbedAsAttr m (Attr Text Bool)) => XMLGenerator m
- class XMLGen m => SetAttr m elem where
  - setAttr :: elem -> GenAttribute m -> GenXML m
  - setAll :: elem -> GenAttributeList m -> GenXML m
- (<@) :: (SetAttr m elem, EmbedAsAttr m attr) => elem -> attr -> GenXML m
- set :: (SetAttr m elem, EmbedAsAttr m attr) => elem -> attr -> GenXML m
- (<<@) :: (SetAttr m elem, EmbedAsAttr m attr) => elem -> [attr] -> GenXML m
- class XMLGen m => AppendChild m elem where
  - appChild :: elem -> GenChild m -> GenXML m
  - appAll :: elem -> GenChildList m -> GenXML m
- (<:) :: (AppendChild m elem, EmbedAsChild m c) => elem -> c -> GenXML m
- app :: (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 s where
  - toName :: n -> Name s
- class TypeCast a b | a -> b, b -> a where
  - typeCast :: a -> b
- class TypeCast' t a b | t a -> b, t b -> a where
  - typeCast' :: t -> a -> b
- class TypeCast'' t a b | t a -> b, t b -> a where
  - typeCast'' :: t -> a -> b
- class TypeCastM ma mb | ma -> mb, mb -> ma where
  - typeCastM :: ma x -> mb x
- class TypeCastM' t ma mb | t ma -> mb, t mb -> ma where
  - typeCastM' :: t -> ma x -> mb x
- class TypeCastM'' t ma mb | t ma -> mb, t mb -> ma where
  - typeCastM'' :: t -> ma x -> mb x

# Documentation

newtype XMLGenT m a Source #

The monad transformer that allows a monad to generate XML values.

Constructors

XMLGenT (m a) |

#### Instances

Instances details

MonadTrans XMLGenT Source # |
Instance details Defined in HSP.XMLGenerator Methods lift :: Monad m => m a -> XMLGenT m a
(MonadReader r m, MonadWriter w m, MonadState s m) => MonadRWS r w s (XMLGenT m) Source # |
Instance details Defined in HSP.XMLGenerator
MonadError e m => MonadError e (XMLGenT m) Source # |
Instance details Defined in HSP.XMLGenerator Methods throwError :: e -> XMLGenT m a catchError :: XMLGenT m a -> (e -> XMLGenT m a) -> XMLGenT m a
MonadReader r m => MonadReader r (XMLGenT m) Source # |
Instance details Defined in HSP.XMLGenerator Methods ask :: XMLGenT m r local :: (r -> r) -> XMLGenT m a -> XMLGenT m a reader :: (r -> a) -> XMLGenT m a
MonadWriter w m => MonadWriter w (XMLGenT m) Source # |
Instance details Defined in HSP.XMLGenerator Methods writer :: (a, w) -> XMLGenT m a tell :: w -> XMLGenT m () listen :: XMLGenT m a -> XMLGenT m (a, w) pass :: XMLGenT m (a, w -> w) -> XMLGenT m a
MonadState s m => MonadState s (XMLGenT m) Source # |
Instance details Defined in HSP.XMLGenerator Methods get :: XMLGenT m s put :: s -> XMLGenT m () state :: (s -> (a, s)) -> XMLGenT m a
(AppendChild m x, TypeCastM m1 m) => AppendChild m (XMLGenT m1 x) Source # |
Instance details Defined in HSP.XMLGenerator Methods appChild :: XMLGenT m1 x -> GenChild m -> GenXML m Source # appAll :: XMLGenT m1 x -> GenChildList m -> GenXML m Source #
(TypeCastM m1 m, SetAttr m x) => SetAttr m (XMLGenT m1 x) Source # |
Instance details Defined in HSP.XMLGenerator Methods setAttr :: XMLGenT m1 x -> GenAttribute m -> GenXML m Source # setAll :: XMLGenT m1 x -> GenAttributeList m -> GenXML m Source #
(EmbedAsAttr m (Attr a v), TypeCastM m1 m) => EmbedAsAttr m (Attr a (XMLGenT m1 v)) Source # |
Instance details Defined in HSP.XMLGenerator Methods asAttr :: Attr a (XMLGenT m1 v) -> GenAttributeList m Source #
(XMLGen m, EmbedAsAttr m a) => EmbedAsAttr m (XMLGenT m a) Source # |
Instance details Defined in HSP.XMLGenerator Methods asAttr :: XMLGenT m a -> GenAttributeList m Source #
(EmbedAsChild m c, m ~ n) => EmbedAsChild m (XMLGenT n c) Source # |
Instance details Defined in HSP.XMLGenerator Methods asChild :: XMLGenT n c -> GenChildList m Source #
Monad m => Monad (XMLGenT m) Source # |
Instance details Defined in HSP.XMLGenerator Methods (>>=) :: XMLGenT m a -> (a -> XMLGenT m b) -> XMLGenT m b (>>) :: XMLGenT m a -> XMLGenT m b -> XMLGenT m b return :: a -> XMLGenT m a
Functor m => Functor (XMLGenT m) Source # |
Instance details Defined in HSP.XMLGenerator Methods fmap :: (a -> b) -> XMLGenT m a -> XMLGenT m b (<$) :: a -> XMLGenT m b -> XMLGenT m a
Applicative m => Applicative (XMLGenT m) Source # |
Instance details Defined in HSP.XMLGenerator Methods pure :: a -> XMLGenT m a (<*>) :: XMLGenT m (a -> b) -> XMLGenT m a -> XMLGenT m b liftA2 :: (a -> b -> c) -> XMLGenT m a -> XMLGenT m b -> XMLGenT m c (*>) :: XMLGenT m a -> XMLGenT m b -> XMLGenT m b (<*) :: XMLGenT m a -> XMLGenT m b -> XMLGenT m a
Alternative m => Alternative (XMLGenT m) Source # |
Instance details Defined in HSP.XMLGenerator Methods empty :: XMLGenT m a (<|>) :: XMLGenT m a -> XMLGenT m a -> XMLGenT m a some :: XMLGenT m a -> XMLGenT m [a] many :: XMLGenT m a -> XMLGenT m [a]
MonadPlus m => MonadPlus (XMLGenT m) Source # |
Instance details Defined in HSP.XMLGenerator Methods mzero :: XMLGenT m a mplus :: XMLGenT m a -> XMLGenT m a -> XMLGenT m a
MonadIO m => MonadIO (XMLGenT m) Source # |
Instance details Defined in HSP.XMLGenerator Methods liftIO :: IO a -> XMLGenT m a
MonadCont m => MonadCont (XMLGenT m) Source # |
Instance details Defined in HSP.XMLGenerator Methods callCC :: ((a -> XMLGenT m b) -> XMLGenT m a) -> XMLGenT m a

unXMLGenT :: XMLGenT m a -> m a Source #

un-lift.

mapXMLGenT :: (m a -> n b) -> XMLGenT m a -> XMLGenT n b Source #

map the inner monad

type Name a = (Maybe a, a) Source #

class Monad m => XMLGen m where Source #

Generate XML values in some XMLGenerator monad.

Minimal complete definition

genElement, xmlToChild, pcdataToChild

Associated Types

type XMLType m Source #

type StringType m Source #

data ChildType m Source #

data AttributeType m Source #

Methods

genElement :: Name (StringType m) -> [XMLGenT m [AttributeType m]] -> [XMLGenT m [ChildType m]] -> XMLGenT m (XMLType m) Source #

genEElement :: Name (StringType m) -> [XMLGenT m [AttributeType m]] -> XMLGenT m (XMLType m) Source #

xmlToChild :: XMLType m -> ChildType m Source #

pcdataToChild :: StringType m -> ChildType m Source #

#### Instances

Instances details

(Functor m, Monad m) => XMLGen (HSPT XML m) Source # |

Instance details

Defined in HSP.Monad

Associated Types

type XMLType (HSPT XML m) Source #

type StringType (HSPT XML m) Source #

data ChildType (HSPT XML m) Source #

data AttributeType (HSPT XML m) Source #

Methods

genElement :: Name (StringType (HSPT XML m)) -> [XMLGenT (HSPT XML m) [AttributeType (HSPT XML m)]] -> [XMLGenT (HSPT XML m) [ChildType (HSPT XML m)]] -> XMLGenT (HSPT XML m) (XMLType (HSPT XML m)) Source #

genEElement :: Name (StringType (HSPT XML m)) -> [XMLGenT (HSPT XML m) [AttributeType (HSPT XML m)]] -> XMLGenT (HSPT XML m) (XMLType (HSPT XML m)) Source #

xmlToChild :: XMLType (HSPT XML m) -> ChildType (HSPT XML m) Source #

pcdataToChild :: StringType (HSPT XML m) -> ChildType (HSPT XML m) Source #

type GenXML m = XMLGenT m (XMLType m) Source #

Type synonyms to avoid writing out the XMLnGenT all the time

type GenXMLList m = XMLGenT m [XMLType m] Source #

type GenChild m = XMLGenT m (ChildType m) Source #

type GenChildList m = XMLGenT m [ChildType m] Source #

type GenAttribute m = XMLGenT m (AttributeType m) Source #

type GenAttributeList m = XMLGenT m [AttributeType m] Source #

class XMLGen m => EmbedAsChild m c where Source #

Embed values as child nodes of an XML element. The parent type will be clear from the context so it is not mentioned.

Methods

asChild :: c -> GenChildList m Source #

#### Instances

Instances details

XMLGen m => EmbedAsChild m () Source # |
Instance details Defined in HSP.XMLGenerator Methods asChild :: () -> GenChildList m Source #
(XMLGen m, XMLType m ~ x) => EmbedAsChild m x Source # |
Instance details Defined in HSP.XMLGenerator Methods asChild :: x -> GenChildList m Source #
XMLGen m => EmbedAsChild m (ChildType m) Source # |
Instance details Defined in HSP.XMLGenerator Methods asChild :: ChildType m -> GenChildList m Source #
EmbedAsChild m c => EmbedAsChild m [c] Source # |
Instance details Defined in HSP.XMLGenerator Methods asChild :: [c] -> GenChildList m Source #
(EmbedAsChild m c, m ~ n) => EmbedAsChild m (XMLGenT n c) Source # |
Instance details Defined in HSP.XMLGenerator Methods asChild :: XMLGenT n c -> GenChildList m Source #
(Functor m, Monad m) => EmbedAsChild (HSPT XML m) () Source # |
Instance details Defined in HSP.Monad Methods asChild :: () -> GenChildList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsChild (HSPT XML m) Char Source # |
Instance details Defined in HSP.Monad Methods asChild :: Char -> GenChildList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsChild (HSPT XML m) Text Source # |
Instance details Defined in HSP.Monad Methods asChild :: Text -> GenChildList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsChild (HSPT XML m) Text Source # |
Instance details Defined in HSP.Monad Methods asChild :: Text -> GenChildList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsChild (HSPT XML m) String Source # |
Instance details Defined in HSP.Monad Methods asChild :: String -> GenChildList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsChild (HSPT XML m) XML Source # |
Instance details Defined in HSP.Monad Methods asChild :: XML -> GenChildList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsChild (HSPT XML m) [XML] Source # |
Instance details Defined in HSP.Monad Methods asChild :: [XML] -> GenChildList (HSPT XML m) Source #

data Attr n a Source #

Constructors

n := a |

#### Instances

Instances details

(EmbedAsAttr m (Attr a v), TypeCastM m1 m) => EmbedAsAttr m (Attr a (XMLGenT m1 v)) Source # |
Instance details Defined in HSP.XMLGenerator Methods asAttr :: Attr a (XMLGenT m1 v) -> GenAttributeList m Source #
(Show n, Show a) => Show (Attr n a) Source # |
Instance details Defined in HSP.XMLGenerator Methods showsPrec :: Int -> Attr n a -> ShowS show :: Attr n a -> String showList :: [Attr n a] -> ShowS
(Functor m, Monad m) => EmbedAsAttr (HSPT XML m) (Attr Text ()) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text () -> GenAttributeList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsAttr (HSPT XML m) (Attr Text ()) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text () -> GenAttributeList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsAttr (HSPT XML m) (Attr Text Int) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text Int -> GenAttributeList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsAttr (HSPT XML m) (Attr Text Int) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text Int -> GenAttributeList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsAttr (HSPT XML m) (Attr Text Bool) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text Bool -> GenAttributeList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsAttr (HSPT XML m) (Attr Text Bool) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text Bool -> GenAttributeList (HSPT XML m) Source #
(Monad m, Functor m) => EmbedAsAttr (HSPT XML m) (Attr Text Char) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text Char -> GenAttributeList (HSPT XML m) Source #
(Monad m, Functor m) => EmbedAsAttr (HSPT XML m) (Attr Text Char) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text Char -> GenAttributeList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsAttr (HSPT XML m) (Attr Text Text) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text0 Text -> GenAttributeList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsAttr (HSPT XML m) (Attr Text Text) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text Text -> GenAttributeList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsAttr (HSPT XML m) (Attr Text Text) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text Text0 -> GenAttributeList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsAttr (HSPT XML m) (Attr Text Text) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text Text -> GenAttributeList (HSPT XML m) Source #

class XMLGen m => EmbedAsAttr m a where Source #

Similarly embed values as attributes of an XML element.

Methods

asAttr :: a -> GenAttributeList m Source #

#### Instances

Instances details

EmbedAsAttr m a => EmbedAsAttr m [a] Source # |
Instance details Defined in HSP.XMLGenerator Methods asAttr :: [a] -> GenAttributeList m Source #
XMLGen m => EmbedAsAttr m (AttributeType m) Source # |
Instance details Defined in HSP.XMLGenerator Methods asAttr :: AttributeType m -> GenAttributeList m Source #
(EmbedAsAttr m (Attr a v), TypeCastM m1 m) => EmbedAsAttr m (Attr a (XMLGenT m1 v)) Source # |
Instance details Defined in HSP.XMLGenerator Methods asAttr :: Attr a (XMLGenT m1 v) -> GenAttributeList m Source #
(XMLGen m, EmbedAsAttr m a) => EmbedAsAttr m (XMLGenT m a) Source # |
Instance details Defined in HSP.XMLGenerator Methods asAttr :: XMLGenT m a -> GenAttributeList m Source #
(Monad m, Functor m) => EmbedAsAttr (HSPT XML m) Attribute Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attribute -> GenAttributeList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsAttr (HSPT XML m) (Attr Text ()) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text () -> GenAttributeList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsAttr (HSPT XML m) (Attr Text ()) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text () -> GenAttributeList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsAttr (HSPT XML m) (Attr Text Int) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text Int -> GenAttributeList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsAttr (HSPT XML m) (Attr Text Int) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text Int -> GenAttributeList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsAttr (HSPT XML m) (Attr Text Bool) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text Bool -> GenAttributeList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsAttr (HSPT XML m) (Attr Text Bool) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text Bool -> GenAttributeList (HSPT XML m) Source #
(Monad m, Functor m) => EmbedAsAttr (HSPT XML m) (Attr Text Char) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text Char -> GenAttributeList (HSPT XML m) Source #
(Monad m, Functor m) => EmbedAsAttr (HSPT XML m) (Attr Text Char) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text Char -> GenAttributeList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsAttr (HSPT XML m) (Attr Text Text) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text0 Text -> GenAttributeList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsAttr (HSPT XML m) (Attr Text Text) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text Text -> GenAttributeList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsAttr (HSPT XML m) (Attr Text Text) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text Text0 -> GenAttributeList (HSPT XML m) Source #
(Functor m, Monad m) => EmbedAsAttr (HSPT XML m) (Attr Text Text) Source # |
Instance details Defined in HSP.Monad Methods asAttr :: Attr Text Text -> GenAttributeList (HSPT XML m) Source #

class (XMLGen m, SetAttr m (XMLType m), AppendChild m (XMLType m), EmbedAsChild m (XMLType m), EmbedAsChild m [XMLType m], EmbedAsChild m Text, EmbedAsChild m Char, EmbedAsChild m (), EmbedAsAttr m (Attr Text Text), EmbedAsAttr m (Attr Text Int), EmbedAsAttr m (Attr Text Bool)) => XMLGenerator m Source #

#### Instances

Instances details

(Functor m, Monad m) => XMLGenerator (HSPT XML m) Source # |
Instance details Defined in HSP.Monad

class XMLGen m => SetAttr m elem where Source #

Set attributes on XML elements

Minimal complete definition

setAll

Methods

setAttr :: elem -> GenAttribute m -> GenXML m Source #

setAll :: elem -> GenAttributeList m -> GenXML m Source #

#### Instances

Instances details

(TypeCastM m1 m, SetAttr m x) => SetAttr m (XMLGenT m1 x) Source # |
Instance details Defined in HSP.XMLGenerator Methods setAttr :: XMLGenT m1 x -> GenAttribute m -> GenXML m Source # setAll :: XMLGenT m1 x -> GenAttributeList m -> GenXML m Source #
(Functor m, Monad m) => SetAttr (HSPT XML m) XML Source # |
Instance details Defined in HSP.Monad Methods setAttr :: XML -> GenAttribute (HSPT XML m) -> GenXML (HSPT XML m) Source # setAll :: XML -> GenAttributeList (HSPT XML m) -> GenXML (HSPT XML m) Source #

(<@) :: (SetAttr m elem, EmbedAsAttr m attr) => elem -> attr -> GenXML m Source #

prepend `attr` to the list of attributes for the `elem`

set :: (SetAttr m elem, EmbedAsAttr m attr) => elem -> attr -> GenXML m Source #

prepend `attr` to the list of attributes for the `elem`

(<<@) :: (SetAttr m elem, EmbedAsAttr m attr) => elem -> [attr] -> GenXML m Source #

prepend the list of `attr` to the attributes for the `elem`

class XMLGen m => AppendChild m elem where Source #

Minimal complete definition

appAll

Methods

appChild :: elem -> GenChild m -> GenXML m Source #

appAll :: elem -> GenChildList m -> GenXML m Source #

#### Instances

Instances details

(AppendChild m x, TypeCastM m1 m) => AppendChild m (XMLGenT m1 x) Source # |
Instance details Defined in HSP.XMLGenerator Methods appChild :: XMLGenT m1 x -> GenChild m -> GenXML m Source # appAll :: XMLGenT m1 x -> GenChildList m -> GenXML m Source #
(Functor m, Monad m) => AppendChild (HSPT XML m) XML Source # |
Instance details Defined in HSP.Monad Methods appChild :: XML -> GenChild (HSPT XML m) -> GenXML (HSPT XML m) Source # appAll :: XML -> GenChildList (HSPT XML m) -> GenXML (HSPT XML m) Source #

(<:) :: (AppendChild m elem, EmbedAsChild m c) => elem -> c -> GenXML m Source #

append child to the children of `elem`

app :: (AppendChild m elem, EmbedAsChild m c) => elem -> c -> GenXML m Source #

append child to the children of `elem`

(<<:) :: (AppendChild m elem, EmbedAsChild m c) => elem -> [c] -> GenXML m Source #

append children to the children of `elem`

class Show n => IsName n s where Source #

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

toName :: n -> Name s Source #

#### Instances

Instances details

IsName String String Source # | Strings can represent names, meaning a simple name with no domain.
Instance details Defined in HSP.XMLGenerator Methods toName :: String -> Name String Source #
IsName String Text Source # | Strings can represent names, meaning a simple name with no domain.
Instance details Defined in HSP.XMLGenerator Methods toName :: String -> Name Text Source #
IsName Text Text Source # | Strings can represent names, meaning a simple name with no domain.
Instance details Defined in HSP.XMLGenerator Methods toName :: Text -> Name Text Source #
IsName Text Text Source # | strings can represent names, meaning a simple name with no domain.
Instance details Defined in HSP.XMLGenerator Methods toName :: Text -> Name Text0 Source #
Show a => IsName (Name a) a Source # | Names can represent names, of course.
Instance details Defined in HSP.XMLGenerator Methods toName :: Name a -> Name a Source #
IsName (String, String) Text Source # | Pairs of strings can represent names, meaning a name qualified with a domain.
Instance details Defined in HSP.XMLGenerator Methods toName :: (String, String) -> Name Text Source #
IsName (Text, Text) Text Source # | Pairs of strings can represent names, meaning a name qualified with a domain.
Instance details Defined in HSP.XMLGenerator Methods toName :: (Text, Text) -> Name Text Source #
IsName (Text, Text) Text Source # | Pairs of strings can represent names, meaning a name qualified with a domain.
Instance details Defined in HSP.XMLGenerator Methods toName :: (Text, Text) -> Name Text0 Source #

class TypeCast a b | a -> b, b -> a where Source #

Methods

typeCast :: a -> b Source #

#### Instances

Instances details

TypeCast' () a b => TypeCast a b Source # |
Instance details Defined in HSP.XMLGenerator Methods typeCast :: a -> b Source #

class TypeCast' t a b | t a -> b, t b -> a where Source #

Methods

typeCast' :: t -> a -> b Source #

#### Instances

Instances details

TypeCast'' t a b => TypeCast' t a b Source # |
Instance details Defined in HSP.XMLGenerator Methods typeCast' :: t -> a -> b Source #

class TypeCast'' t a b | t a -> b, t b -> a where Source #

Methods

typeCast'' :: t -> a -> b Source #

#### Instances

Instances details

TypeCast'' () a a Source # |
Instance details Defined in HSP.XMLGenerator Methods typeCast'' :: () -> a -> a Source #

class TypeCastM ma mb | ma -> mb, mb -> ma where Source #

Methods

typeCastM :: ma x -> mb x Source #

#### Instances

Instances details

TypeCastM' () ma mb => TypeCastM ma mb Source # |
Instance details Defined in HSP.XMLGenerator Methods typeCastM :: ma x -> mb x Source #

class TypeCastM' t ma mb | t ma -> mb, t mb -> ma where Source #

Methods

typeCastM' :: t -> ma x -> mb x Source #

#### Instances

Instances details

TypeCastM'' t ma mb => TypeCastM' t ma mb Source # |
Instance details Defined in HSP.XMLGenerator Methods typeCastM' :: t -> ma x -> mb x Source #

class TypeCastM'' t ma mb | t ma -> mb, t mb -> ma where Source #

Methods

typeCastM'' :: t -> ma x -> mb x Source #

#### Instances

Instances details

TypeCastM'' () ma ma Source # |
Instance details Defined in HSP.XMLGenerator Methods typeCastM'' :: () -> ma x -> ma x Source #