Module "XmlConv.curry"

Provides type-based combinators to construct XML converters. Arbitrary XML data can be represented as algebraic datatypes and vice versa. See here for a description of this library.

Author: Sebastian Fischer

Version: March 2006


 Exported names:

Datatypes:
XAttrConv | XElemConv | XmlReads | XmlShows | XOptConv | XPrimConv | XRepConv

Functions:
! | aBool | aChar | adapt | aFloat | aInt | aString | attr | char | eBool | eChar | eEmpty | eFloat | eInt | element | empty | eOpt | eRep | eRepSeq1 | eRepSeq2 | eRepSeq3 | eRepSeq4 | eRepSeq5 | eRepSeq6 | eSeq1 | eSeq2 | eSeq3 | eSeq4 | eSeq5 | eSeq6 | eString | float | int | opt | rep | repSeq1 | repSeq2 | repSeq3 | repSeq4 | repSeq5 | repSeq6 | seq1 | seq2 | seq3 | seq4 | seq5 | seq6 | string | xmlRead | xmlReads | xmlShow | xmlShows


 Summary of exported functions:

xmlReads  :: XmlConv a b c -> ([(String,String)],[XmlExp]) -> (c,([(String,String)],[XmlExp]))  deterministic flexible
          Takes an XML converter and returns a function that consumes XML data and returns the remaining data along with the result.
xmlShows  :: XmlConv a b c -> c -> ([(String,String)],[XmlExp]) -> ([(String,String)],[XmlExp])  deterministic flexible
          Takes an XML converter and returns a function that extends XML data with the representation of a given value.
xmlRead  :: XmlConv a Elem b -> XmlExp -> b  deterministic 
          Takes an XML converter and an XML expression and returns a corresponding Curry value.
xmlShow  :: XmlConv a Elem b -> b -> XmlExp  deterministic 
          Takes an XML converter and a value and returns a corresponding XML expression.
int  :: XmlConv NotRepeatable NoElem Int  deterministic 
          Creates an XML converter for integer values.
float  :: XmlConv NotRepeatable NoElem Float  deterministic 
          Creates an XML converter for float values.
char  :: XmlConv NotRepeatable NoElem Char  deterministic 
          Creates an XML converter for character values.
string  :: XmlConv NotRepeatable NoElem String  deterministic 
          Creates an XML converter for string values.
(!)  :: XmlConv a b c -> XmlConv a b c -> XmlConv a b c  deterministic flexible
          Parallel composition of XML converters.
element  :: String -> XmlConv a b c -> XmlConv Repeatable Elem c  deterministic 
          Takes an arbitrary XML converter and returns a converter representing an XML element that contains the corresponding data.
empty  :: a -> XmlConv NotRepeatable NoElem a  deterministic 
          Takes a value and returns an XML converter for this value which is not represented as XML data.
attr  :: String -> (String -> a,a -> String) -> XmlConv NotRepeatable NoElem a  deterministic flexible
          Takes a name and string conversion functions and returns an XML converter that represents an attribute.
adapt  :: (a -> b,b -> a) -> XmlConv c d a -> XmlConv c d b  deterministic flexible
          Converts between arbitrary XML converters for different types.
opt  :: XmlConv a b c -> XmlConv NotRepeatable NoElem (Maybe c)  deterministic 
          Creates a converter for arbitrary optional XML data.
rep  :: XmlConv Repeatable a b -> XmlConv NotRepeatable NoElem [b]  deterministic 
          Takes an XML converter representing repeatable data and returns an XML converter that represents repetitions of this data.
aInt  :: String -> XmlConv NotRepeatable NoElem Int  deterministic 
          Creates an XML converter for integer attributes.
aFloat  :: String -> XmlConv NotRepeatable NoElem Float  deterministic 
          Creates an XML converter for float attributes.
aChar  :: String -> XmlConv NotRepeatable NoElem Char  deterministic 
          Creates an XML converter for character attributes.
aString  :: String -> XmlConv NotRepeatable NoElem String  deterministic 
          Creates an XML converter for string attributes.
aBool  :: String -> String -> String -> XmlConv NotRepeatable NoElem Bool  deterministic 
          Creates an XML converter for boolean attributes.
eInt  :: String -> XmlConv Repeatable Elem Int  deterministic 
          Creates an XML converter for integer elements.
eFloat  :: String -> XmlConv Repeatable Elem Float  deterministic 
          Creates an XML converter for float elements.
eChar  :: String -> XmlConv Repeatable Elem Char  deterministic 
          Creates an XML converter for character elements.
eString  :: String -> XmlConv Repeatable Elem String  deterministic 
          Creates an XML converter for string elements.
eBool  :: String -> String -> XmlConv Repeatable Elem Bool  deterministic 
          Creates an XML converter for boolean elements.
eEmpty  :: String -> a -> XmlConv Repeatable Elem a  deterministic 
          Takes a name and a value and creates an empty XML element that represents the given value.
eOpt  :: String -> XmlConv a b c -> XmlConv Repeatable Elem (Maybe c)  deterministic 
          Creates an XML converter that represents an element containing optional XML data.
eRep  :: String -> XmlConv Repeatable a b -> XmlConv Repeatable Elem [b]  deterministic 
          Creates an XML converter that represents an element containing repeated XML data.
seq1  :: (a -> b) -> XmlConv c d a -> XmlConv c NoElem b  deterministic 
          Creates an XML converter representing a sequence of arbitrary XML data.
repSeq1  :: (a -> b) -> XmlConv Repeatable c a -> XmlConv NotRepeatable NoElem [b]  deterministic 
          Creates an XML converter that represents a repetition of a sequence of repeatable XML data.
eSeq1  :: String -> (a -> b) -> XmlConv c d a -> XmlConv Repeatable Elem b  deterministic 
          Creates an XML converter for compound values represented as an XML element with children that correspond to the values components.
eRepSeq1  :: String -> (a -> b) -> XmlConv Repeatable c a -> XmlConv Repeatable Elem [b]  deterministic 
          Creates an XML converter for repetitions of sequences represented as an XML element that can be used in repetitions.
seq2  :: (a -> b -> c) -> XmlConv d e a -> XmlConv f g b -> XmlConv NotRepeatable NoElem c  deterministic 
          Creates an XML converter representing a sequence of arbitrary XML data.
repSeq2  :: (a -> b -> c) -> XmlConv Repeatable d a -> XmlConv Repeatable e b -> XmlConv NotRepeatable NoElem [c]  deterministic 
          Creates an XML converter that represents a repetition of a sequence of repeatable XML data.
eSeq2  :: String -> (a -> b -> c) -> XmlConv d e a -> XmlConv f g b -> XmlConv Repeatable Elem c  deterministic 
          Creates an XML converter for compound values represented as an XML element with children that correspond to the values components.
eRepSeq2  :: String -> (a -> b -> c) -> XmlConv Repeatable d a -> XmlConv Repeatable e b -> XmlConv Repeatable Elem [c]  deterministic 
          Creates an XML converter for repetitions of sequences represented as an XML element that can be used in repetitions.
seq3  :: (a -> b -> c -> d) -> XmlConv e f a -> XmlConv g h b -> XmlConv i j c -> XmlConv NotRepeatable NoElem d  deterministic 
          Creates an XML converter representing a sequence of arbitrary XML data.
repSeq3  :: (a -> b -> c -> d) -> XmlConv Repeatable e a -> XmlConv Repeatable f b -> XmlConv Repeatable g c -> XmlConv NotRepeatable NoElem [d]  deterministic 
          Creates an XML converter that represents a repetition of a sequence of repeatable XML data.
eSeq3  :: String -> (a -> b -> c -> d) -> XmlConv e f a -> XmlConv g h b -> XmlConv i j c -> XmlConv Repeatable Elem d  deterministic 
          Creates an XML converter for compound values represented as an XML element with children that correspond to the values components.
eRepSeq3  :: String -> (a -> b -> c -> d) -> XmlConv Repeatable e a -> XmlConv Repeatable f b -> XmlConv Repeatable g c -> XmlConv Repeatable Elem [d]  deterministic 
          Creates an XML converter for repetitions of sequences represented as an XML element that can be used in repetitions.
seq4  :: (a -> b -> c -> d -> e) -> XmlConv f g a -> XmlConv h i b -> XmlConv j k c -> XmlConv l m d -> XmlConv NotRepeatable NoElem e  deterministic 
          Creates an XML converter representing a sequence of arbitrary XML data.
repSeq4  :: (a -> b -> c -> d -> e) -> XmlConv Repeatable f a -> XmlConv Repeatable g b -> XmlConv Repeatable h c -> XmlConv Repeatable i d -> XmlConv NotRepeatable NoElem [e]  deterministic 
          Creates an XML converter that represents a repetition of a sequence of repeatable XML data.
eSeq4  :: String -> (a -> b -> c -> d -> e) -> XmlConv f g a -> XmlConv h i b -> XmlConv j k c -> XmlConv l m d -> XmlConv Repeatable Elem e  deterministic 
          Creates an XML converter for compound values represented as an XML element with children that correspond to the values components.
eRepSeq4  :: String -> (a -> b -> c -> d -> e) -> XmlConv Repeatable f a -> XmlConv Repeatable g b -> XmlConv Repeatable h c -> XmlConv Repeatable i d -> XmlConv Repeatable Elem [e]  deterministic 
          Creates an XML converter for repetitions of sequences represented as an XML element that can be used in repetitions.
seq5  :: (a -> b -> c -> d -> e -> f) -> XmlConv g h a -> XmlConv i j b -> XmlConv k l c -> XmlConv m n d -> XmlConv o p e -> XmlConv NotRepeatable NoElem f  deterministic 
          Creates an XML converter representing a sequence of arbitrary XML data.
repSeq5  :: (a -> b -> c -> d -> e -> f) -> XmlConv Repeatable g a -> XmlConv Repeatable h b -> XmlConv Repeatable i c -> XmlConv Repeatable j d -> XmlConv Repeatable k e -> XmlConv NotRepeatable NoElem [f]  deterministic 
          Creates an XML converter that represents a repetition of a sequence of repeatable XML data.
eSeq5  :: String -> (a -> b -> c -> d -> e -> f) -> XmlConv g h a -> XmlConv i j b -> XmlConv k l c -> XmlConv m n d -> XmlConv o p e -> XmlConv Repeatable Elem f  deterministic 
          Creates an XML converter for compound values represented as an XML element with children that correspond to the values components.
eRepSeq5  :: String -> (a -> b -> c -> d -> e -> f) -> XmlConv Repeatable g a -> XmlConv Repeatable h b -> XmlConv Repeatable i c -> XmlConv Repeatable j d -> XmlConv Repeatable k e -> XmlConv Repeatable Elem [f]  deterministic 
          Creates an XML converter for repetitions of sequences represented as an XML element that can be used in repetitions.
seq6  :: (a -> b -> c -> d -> e -> f -> g) -> XmlConv h i a -> XmlConv j k b -> XmlConv l m c -> XmlConv n o d -> XmlConv p q e -> XmlConv r s f -> XmlConv NotRepeatable NoElem g  deterministic 
          Creates an XML converter representing a sequence of arbitrary XML data.
repSeq6  :: (a -> b -> c -> d -> e -> f -> g) -> XmlConv Repeatable h a -> XmlConv Repeatable i b -> XmlConv Repeatable j c -> XmlConv Repeatable k d -> XmlConv Repeatable l e -> XmlConv Repeatable m f -> XmlConv NotRepeatable NoElem [g]  deterministic 
          Creates an XML converter that represents a repetition of a sequence of repeatable XML data.
eSeq6  :: String -> (a -> b -> c -> d -> e -> f -> g) -> XmlConv h i a -> XmlConv j k b -> XmlConv l m c -> XmlConv n o d -> XmlConv p q e -> XmlConv r s f -> XmlConv Repeatable Elem g  deterministic 
          Creates an XML converter for compound values represented as an XML element with children that correspond to the values components.
eRepSeq6  :: String -> (a -> b -> c -> d -> e -> f -> g) -> XmlConv Repeatable h a -> XmlConv Repeatable i b -> XmlConv Repeatable j c -> XmlConv Repeatable k d -> XmlConv Repeatable l e -> XmlConv Repeatable m f -> XmlConv Repeatable Elem [g]  deterministic 
          Creates an XML converter for repetitions of sequences represented as an XML element that can be used in repetitions.

 Imported modules:

Prelude
Read
ReadShowTerm
XML

 Exported datatypes:

XmlReads

Type of functions that consume some XML data to compute a result

Type synonym: XmlReads a = ([(String,String)],[XmlExp]) -> (a,([(String,String)],[XmlExp]))


XmlShows

Type of functions that extend XML data corresponding to a given value

Type synonym: XmlShows a = a -> ([(String,String)],[XmlExp]) -> ([(String,String)],[XmlExp])


XElemConv

Type of converters for XML elements

Type synonym: XElemConv a = XmlConv Repeatable Elem a


XAttrConv

Type of converters for attributes

Type synonym: XAttrConv a = XmlConv NotRepeatable NoElem a


XPrimConv

Type of converters for primitive values

Type synonym: XPrimConv a = XmlConv NotRepeatable NoElem a


XOptConv

Type of converters for optional values

Type synonym: XOptConv a = XmlConv NotRepeatable NoElem a


XRepConv

Type of converters for repetitions

Type synonym: XRepConv a = XmlConv NotRepeatable NoElem a



 Exported functions:

xmlReads :: XmlConv a b c -> ([(String,String)],[XmlExp]) -> (c,([(String,String)],[XmlExp]))  deterministic flexible

Takes an XML converter and returns a function that consumes XML data and returns the remaining data along with the result.

Example call:  (xmlReads conv)

Parameters:
conv XML converter
Returns:
XmlReads function
Further infos:

xmlShows :: XmlConv a b c -> c -> ([(String,String)],[XmlExp]) -> ([(String,String)],[XmlExp])  deterministic flexible

Takes an XML converter and returns a function that extends XML data with the representation of a given value.

Example call:  (xmlShows conv)

Parameters:
conv XML converter
Returns:
XmlShows function
Further infos:

xmlRead :: XmlConv a Elem b -> XmlExp -> b  deterministic 

Takes an XML converter and an XML expression and returns a corresponding Curry value.

Example call:  (xmlRead conv)

Parameters:
conv XML converter
Returns:
XML read function

xmlShow :: XmlConv a Elem b -> b -> XmlExp  deterministic 

Takes an XML converter and a value and returns a corresponding XML expression.

Example call:  (xmlShow conv)

Parameters:
conv XML converter
Returns:
XML show function

int :: XmlConv NotRepeatable NoElem Int  deterministic 

Creates an XML converter for integer values. Integer values must not be used in repetitions and do not represent XML elements.

Returns:
Int converter

float :: XmlConv NotRepeatable NoElem Float  deterministic 

Creates an XML converter for float values. Float values must not be used in repetitions and do not represent XML elements.

Returns:
Float converter

char :: XmlConv NotRepeatable NoElem Char  deterministic 

Creates an XML converter for character values. Character values must not be used in repetitions and do not represent XML elements.

Returns:
Char converter

string :: XmlConv NotRepeatable NoElem String  deterministic 

Creates an XML converter for string values. String values must not be used in repetitions and do not represent XML elements.

Returns:
String converter

(!) :: XmlConv a b c -> XmlConv a b c -> XmlConv a b c  deterministic flexible

Parallel composition of XML converters.

Returns:
Nondeterministic choice of XML converters
Further infos:

element :: String -> XmlConv a b c -> XmlConv Repeatable Elem c  deterministic 

Takes an arbitrary XML converter and returns a converter representing an XML element that contains the corresponding data. XML elements may be used in repetitions.

Example call:  (element name conv)

Parameters:
name Tag name of the XML element
conv XML converter for the childs of the XML element
Returns:
XML converter representing an XML element

empty :: a -> XmlConv NotRepeatable NoElem a  deterministic 

Takes a value and returns an XML converter for this value which is not represented as XML data. Empty XML data must not be used in repetitions and does not represent an XML element.

Example call:  (empty val)

Parameters:
val Value without an XML representation
Returns:
Empty XML converter

attr :: String -> (String -> a,a -> String) -> XmlConv NotRepeatable NoElem a  deterministic flexible

Takes a name and string conversion functions and returns an XML converter that represents an attribute. Attributes must not be used in repetitions and do not represent an XML element.

Example call:  (attr name readShow)

Parameters:
name Attribute name
readShow functions that convert between values and strings
Returns:
Attribute converter

adapt :: (a -> b,b -> a) -> XmlConv c d a -> XmlConv c d b  deterministic flexible

Converts between arbitrary XML converters for different types.

Example call:  (adapt a2b_b2a conv)

Parameters:
a2b_b2a functions that convert between values of types a and b
conv XML converter for type a
Returns:
XML converter for type b

opt :: XmlConv a b c -> XmlConv NotRepeatable NoElem (Maybe c)  deterministic 

Creates a converter for arbitrary optional XML data. Optional XML data must not be used in repetitions and does not represent an XML element.

Example call:  (opt conv)

Parameters:
conv XML converter
Returns:
XML converter for optional data represented by the given converter

rep :: XmlConv Repeatable a b -> XmlConv NotRepeatable NoElem [b]  deterministic 

Takes an XML converter representing repeatable data and returns an XML converter that represents repetitions of this data. Repetitions must not be used in other repetitions and do not represent XML elements.

Example call:  (rep conv)

Parameters:
conv XML converter representing repeatable data
Returns:
XML converter representing repetitions

aInt :: String -> XmlConv NotRepeatable NoElem Int  deterministic 

Creates an XML converter for integer attributes. Integer attributes must not be used in repetitions and do not represent XML elements.

Example call:  (aInt name)

Parameters:
name Attribute name
Returns:
Int attribute converter

aFloat :: String -> XmlConv NotRepeatable NoElem Float  deterministic 

Creates an XML converter for float attributes. Float attributes must not be used in repetitions and do not represent XML elements.

Example call:  (aFloat name)

Parameters:
name Attribute name
Returns:
Float attribute converter

aChar :: String -> XmlConv NotRepeatable NoElem Char  deterministic 

Creates an XML converter for character attributes. Character attributes must not be used in repetitions and do not represent XML elements.

Example call:  (aChar name)

Parameters:
name Attribute name
Returns:
Char attribute converter

aString :: String -> XmlConv NotRepeatable NoElem String  deterministic 

Creates an XML converter for string attributes. String attributes must not be used in repetitions and do not represent XML elements.

Example call:  (aString name)

Parameters:
name Attribute name
Returns:
String attribute converter

aBool :: String -> String -> String -> XmlConv NotRepeatable NoElem Bool  deterministic 

Creates an XML converter for boolean attributes. Boolean attributes must not be used in repetitions and do not represent XML elements.

Example call:  (aBool name true false)

Parameters:
name Attribute name
true String representing True
false String representing False
Returns:
Bool attribute converter

eInt :: String -> XmlConv Repeatable Elem Int  deterministic 

Creates an XML converter for integer elements. Integer elements may be used in repetitions.

Example call:  (eInt name)

Parameters:
name Tag name of the XML element containing the integer value
Returns:
Int element converter

eFloat :: String -> XmlConv Repeatable Elem Float  deterministic 

Creates an XML converter for float elements. Float elements may be used in repetitions.

Example call:  (eFloat name)

Parameters:
name Tag name of the XML element containing the float value
Returns:
Float element converter

eChar :: String -> XmlConv Repeatable Elem Char  deterministic 

Creates an XML converter for character elements. Character elements may be used in repetitions.

Example call:  (eChar name)

Parameters:
name Tag name of the XML element containing the character value
Returns:
Char element converter

eString :: String -> XmlConv Repeatable Elem String  deterministic 

Creates an XML converter for string elements. String elements may be used in repetitions.

Example call:  (eString name)

Parameters:
name Tag name of the XML element containing the string value
Returns:
String element converter

eBool :: String -> String -> XmlConv Repeatable Elem Bool  deterministic 

Creates an XML converter for boolean elements. Boolean elements may be used in repetitions.

Example call:  (eBool true false)

Parameters:
true Tag name of the XML element representing True
false Tag name of the XML element representing False
Returns:
Bool element converter

eEmpty :: String -> a -> XmlConv Repeatable Elem a  deterministic 

Takes a name and a value and creates an empty XML element that represents the given value. The created element may be used in repetitions.

Example call:  (eEmpty name val)

Parameters:
name Tag name of the empty element
val Value represented by the empty element
Returns:
XML converter representing an empty XML element

eOpt :: String -> XmlConv a b c -> XmlConv Repeatable Elem (Maybe c)  deterministic 

Creates an XML converter that represents an element containing optional XML data. The created element may be used in repetitions.

Example call:  (eOpt name)

Parameters:
name Tag name of the element containing optional XML data
Returns:
XML converter for an element enclosing optional XML data

eRep :: String -> XmlConv Repeatable a b -> XmlConv Repeatable Elem [b]  deterministic 

Creates an XML converter that represents an element containing repeated XML data. The created element may be used in repetitions.

Example call:  (eRep name)

Parameters:
name Tag name of the element containing repeated XML data
Returns:
XML converter for an element enclosing repeated XML data

seq1 :: (a -> b) -> XmlConv c d a -> XmlConv c NoElem b  deterministic 

Creates an XML converter representing a sequence of arbitrary XML data. The sequence must not be used in repetitions and does not represent an XML element.

Example call:  (seq1 f conv)

Parameters:
f Invertable function (constructor) that combines the sequence
conv(s) XML converter for the data contained in the sequence
Returns:
XML converter representing a sequence

repSeq1 :: (a -> b) -> XmlConv Repeatable c a -> XmlConv NotRepeatable NoElem [b]  deterministic 

Creates an XML converter that represents a repetition of a sequence of repeatable XML data. The repetition may be used in other repetitions but does not represent an XML element. This combinator is provided because converters for repeatable sequences cannot be constructed by the seq combinators.

Example call:  (repSeq1 f conv)

Parameters:
f Invertable function (constructor) that combines the sequence
conv(s) XML converter for the data contained in the sequence
Returns:
XML converter representing a repetition of a sequence

eSeq1 :: String -> (a -> b) -> XmlConv c d a -> XmlConv Repeatable Elem b  deterministic 

Creates an XML converter for compound values represented as an XML element with children that correspond to the values components. The element can be used in repetitions.

Example call:  (eSeq1 name cons conv)

Parameters:
name Tag name of the element
cons constructor of the compound value
conv(s) XML converter for the components
Returns:
XML element converter for a compound value

eRepSeq1 :: String -> (a -> b) -> XmlConv Repeatable c a -> XmlConv Repeatable Elem [b]  deterministic 

Creates an XML converter for repetitions of sequences represented as an XML element that can be used in repetitions.

Example call:  (eRepSeq1 name cons conv)

Parameters:
name Tag name of the element
cons constructor of the sequence
conv(s) XML converter for the components
Returns:
XML element converter for a repeated sequence

seq2 :: (a -> b -> c) -> XmlConv d e a -> XmlConv f g b -> XmlConv NotRepeatable NoElem c  deterministic 

Creates an XML converter representing a sequence of arbitrary XML data. The sequence must not be used in repetitions and does not represent an XML element.

Example call:  (seq2 f conv)

Parameters:
f Invertable function (constructor) that combines the sequence
conv(s) XML converter for the data contained in the sequence
Returns:
XML converter representing a sequence

repSeq2 :: (a -> b -> c) -> XmlConv Repeatable d a -> XmlConv Repeatable e b -> XmlConv NotRepeatable NoElem [c]  deterministic 

Creates an XML converter that represents a repetition of a sequence of repeatable XML data. The repetition may be used in other repetitions and does not represent an XML element. This combinator is provided because converters for repeatable sequences cannot be constructed by the seq combinators.

Example call:  (repSeq2 f conv)

Parameters:
f Invertable function (constructor) that combines the sequence
conv(s) XML converter for the data contained in the sequence
Returns:
XML converter representing a repetition of a sequence

eSeq2 :: String -> (a -> b -> c) -> XmlConv d e a -> XmlConv f g b -> XmlConv Repeatable Elem c  deterministic 

Creates an XML converter for compound values represented as an XML element with children that correspond to the values components. The element can be used in repetitions.

Example call:  (eSeq2 name cons conv)

Parameters:
name Tag name of the element
cons constructor of the compound value
conv(s) XML converter for the components
Returns:
XML element converter for a compound value

eRepSeq2 :: String -> (a -> b -> c) -> XmlConv Repeatable d a -> XmlConv Repeatable e b -> XmlConv Repeatable Elem [c]  deterministic 

Creates an XML converter for repetitions of sequences represented as an XML element that can be used in repetitions.

Example call:  (eRepSeq2 name cons conv)

Parameters:
name Tag name of the element
cons constructor of the sequence
conv(s) XML converter for the components
Returns:
XML element converter for a repeated sequence

seq3 :: (a -> b -> c -> d) -> XmlConv e f a -> XmlConv g h b -> XmlConv i j c -> XmlConv NotRepeatable NoElem d  deterministic 

Creates an XML converter representing a sequence of arbitrary XML data. The sequence must not be used in repetitions and does not represent an XML element.

Example call:  (seq3 f conv)

Parameters:
f Invertable function (constructor) that combines the sequence
conv(s) XML converter for the data contained in the sequence
Returns:
XML converter representing a sequence

repSeq3 :: (a -> b -> c -> d) -> XmlConv Repeatable e a -> XmlConv Repeatable f b -> XmlConv Repeatable g c -> XmlConv NotRepeatable NoElem [d]  deterministic 

Creates an XML converter that represents a repetition of a sequence of repeatable XML data. The repetition may be used in other repetitions and does not represent an XML element. This combinator is provided because converters for repeatable sequences cannot be constructed by the seq combinators.

Example call:  (repSeq3 f conv)

Parameters:
f Invertable function (constructor) that combines the sequence
conv(s) XML converter for the data contained in the sequence
Returns:
XML converter representing a repetition of a sequence

eSeq3 :: String -> (a -> b -> c -> d) -> XmlConv e f a -> XmlConv g h b -> XmlConv i j c -> XmlConv Repeatable Elem d  deterministic 

Creates an XML converter for compound values represented as an XML element with children that correspond to the values components. The element can be used in repetitions.

Example call:  (eSeq3 name cons conv)

Parameters:
name Tag name of the element
cons constructor of the compound value
conv(s) XML converter for the components
Returns:
XML element converter for a compound value

eRepSeq3 :: String -> (a -> b -> c -> d) -> XmlConv Repeatable e a -> XmlConv Repeatable f b -> XmlConv Repeatable g c -> XmlConv Repeatable Elem [d]  deterministic 

Creates an XML converter for repetitions of sequences represented as an XML element that can be used in repetitions.

Example call:  (eRepSeq3 name cons conv)

Parameters:
name Tag name of the element
cons constructor of the sequence
conv(s) XML converter for the components
Returns:
XML element converter for a repeated sequence

seq4 :: (a -> b -> c -> d -> e) -> XmlConv f g a -> XmlConv h i b -> XmlConv j k c -> XmlConv l m d -> XmlConv NotRepeatable NoElem e  deterministic 

Creates an XML converter representing a sequence of arbitrary XML data. The sequence must not be used in repetitions and does not represent an XML element.

Example call:  (seq4 f conv)

Parameters:
f Invertable function (constructor) that combines the sequence
conv(s) XML converter for the data contained in the sequence
Returns:
XML converter representing a sequence

repSeq4 :: (a -> b -> c -> d -> e) -> XmlConv Repeatable f a -> XmlConv Repeatable g b -> XmlConv Repeatable h c -> XmlConv Repeatable i d -> XmlConv NotRepeatable NoElem [e]  deterministic 

Creates an XML converter that represents a repetition of a sequence of repeatable XML data. The repetition may be used in other repetitions and does not represent an XML element. This combinator is provided because converters for repeatable sequences cannot be constructed by the seq combinators.

Example call:  (repSeq4 f conv)

Parameters:
f Invertable function (constructor) that combines the sequence
conv(s) XML converter for the data contained in the sequence
Returns:
XML converter representing a repetition of a sequence

eSeq4 :: String -> (a -> b -> c -> d -> e) -> XmlConv f g a -> XmlConv h i b -> XmlConv j k c -> XmlConv l m d -> XmlConv Repeatable Elem e  deterministic 

Creates an XML converter for compound values represented as an XML element with children that correspond to the values components. The element can be used in repetitions.

Example call:  (eSeq4 name cons conv)

Parameters:
name Tag name of the element
cons constructor of the compound value
conv(s) XML converter for the components
Returns:
XML element converter for a compound value

eRepSeq4 :: String -> (a -> b -> c -> d -> e) -> XmlConv Repeatable f a -> XmlConv Repeatable g b -> XmlConv Repeatable h c -> XmlConv Repeatable i d -> XmlConv Repeatable Elem [e]  deterministic 

Creates an XML converter for repetitions of sequences represented as an XML element that can be used in repetitions.

Example call:  (eRepSeq4 name cons conv)

Parameters:
name Tag name of the element
cons constructor of the sequence
conv(s) XML converter for the components
Returns:
XML element converter for a repeated sequence

seq5 :: (a -> b -> c -> d -> e -> f) -> XmlConv g h a -> XmlConv i j b -> XmlConv k l c -> XmlConv m n d -> XmlConv o p e -> XmlConv NotRepeatable NoElem f  deterministic 

Creates an XML converter representing a sequence of arbitrary XML data. The sequence must not be used in repetitions and does not represent an XML element.

Example call:  (seq5 f conv)

Parameters:
f Invertable function (constructor) that combines the sequence
conv(s) XML converter for the data contained in the sequence
Returns:
XML converter representing a sequence

repSeq5 :: (a -> b -> c -> d -> e -> f) -> XmlConv Repeatable g a -> XmlConv Repeatable h b -> XmlConv Repeatable i c -> XmlConv Repeatable j d -> XmlConv Repeatable k e -> XmlConv NotRepeatable NoElem [f]  deterministic 

Creates an XML converter that represents a repetition of a sequence of repeatable XML data. The repetition may be used in other repetitions and does not represent an XML element. This combinator is provided because converters for repeatable sequences cannot be constructed by the seq combinators.

Example call:  (repSeq5 f conv)

Parameters:
f Invertable function (constructor) that combines the sequence
conv(s) XML converter for the data contained in the sequence
Returns:
XML converter representing a repetition of a sequence

eSeq5 :: String -> (a -> b -> c -> d -> e -> f) -> XmlConv g h a -> XmlConv i j b -> XmlConv k l c -> XmlConv m n d -> XmlConv o p e -> XmlConv Repeatable Elem f  deterministic 

Creates an XML converter for compound values represented as an XML element with children that correspond to the values components. The element can be used in repetitions.

Example call:  (eSeq5 name cons conv)

Parameters:
name Tag name of the element
cons constructor of the compound value
conv(s) XML converter for the components
Returns:
XML element converter for a compound value

eRepSeq5 :: String -> (a -> b -> c -> d -> e -> f) -> XmlConv Repeatable g a -> XmlConv Repeatable h b -> XmlConv Repeatable i c -> XmlConv Repeatable j d -> XmlConv Repeatable k e -> XmlConv Repeatable Elem [f]  deterministic 

Creates an XML converter for repetitions of sequences represented as an XML element that can be used in repetitions.

Example call:  (eRepSeq5 name cons conv)

Parameters:
name Tag name of the element
cons constructor of the sequence
conv(s) XML converter for the components
Returns:
XML element converter for a repeated sequence

seq6 :: (a -> b -> c -> d -> e -> f -> g) -> XmlConv h i a -> XmlConv j k b -> XmlConv l m c -> XmlConv n o d -> XmlConv p q e -> XmlConv r s f -> XmlConv NotRepeatable NoElem g  deterministic 

Creates an XML converter representing a sequence of arbitrary XML data. The sequence must not be used in repetitions and does not represent an XML element.

Example call:  (seq6 f conv)

Parameters:
f Invertable function (constructor) that combines the sequence
conv(s) XML converter for the data contained in the sequence
Returns:
XML converter representing a sequence

repSeq6 :: (a -> b -> c -> d -> e -> f -> g) -> XmlConv Repeatable h a -> XmlConv Repeatable i b -> XmlConv Repeatable j c -> XmlConv Repeatable k d -> XmlConv Repeatable l e -> XmlConv Repeatable m f -> XmlConv NotRepeatable NoElem [g]  deterministic 

Creates an XML converter that represents a repetition of a sequence of repeatable XML data. The repetition may be used in other repetitions and does not represent an XML element. This combinator is provided because converters for repeatable sequences cannot be constructed by the seq combinators.

Example call:  (repSeq6 f conv)

Parameters:
f Invertable function (constructor) that combines the sequence
conv(s) XML converter for the data contained in the sequence
Returns:
XML converter representing a repetition of a sequence

eSeq6 :: String -> (a -> b -> c -> d -> e -> f -> g) -> XmlConv h i a -> XmlConv j k b -> XmlConv l m c -> XmlConv n o d -> XmlConv p q e -> XmlConv r s f -> XmlConv Repeatable Elem g  deterministic 

Creates an XML converter for compound values represented as an XML element with children that correspond to the values components. The element can be used in repetitions.

Example call:  (eSeq6 name cons conv)

Parameters:
name Tag name of the element
cons constructor of the compound value
conv(s) XML converter for the components
Returns:
XML element converter for a compound value

eRepSeq6 :: String -> (a -> b -> c -> d -> e -> f -> g) -> XmlConv Repeatable h a -> XmlConv Repeatable i b -> XmlConv Repeatable j c -> XmlConv Repeatable k d -> XmlConv Repeatable l e -> XmlConv Repeatable m f -> XmlConv Repeatable Elem [g]  deterministic 

Creates an XML converter for repetitions of sequences represented as an XML element that can be used in repetitions.

Example call:  (eRepSeq6 name cons conv)

Parameters:
name Tag name of the element
cons constructor of the sequence
conv(s) XML converter for the components
Returns:
XML element converter for a repeated sequence


Generated by CurryDoc (Version 0.4.1 of June 7, 2007) at Jun 16 17:25:59 2009