module xml-doc

signature
  constructors
                     : CharData -> Content
                     : PI -> Content
    Comment          : Comment -> Content
                     : Element -> Content
    Element          : QName * List(Attribute) * List(Content) * QName -> Element
    EmptyElement     : QName * List(Attribute) -> Element
    Document         : Prologue * Element * Epilogue -> Document
                     : String -> FooSingleQuotedText
                     : String -> FooDoubleQuotedText
                     : Ref -> SingleQuotedPart
    Literal          : FooSingleQuotedText -> SingleQuotedPart
                     : Ref -> DoubleQuotedPart
    Literal          : FooDoubleQuotedText -> DoubleQuotedPart
    SingleQuoted     : List(SingleQuotedPart) -> AttValue
    DoubleQuoted     : List(DoubleQuotedPart) -> AttValue
    Attribute        : QName * AttValue -> Attribute
                     : EntityRef -> Ref
                     : CharRef -> Ref
                     : HexCharRef -> CharRef
                     : DecCharRef -> CharRef
    EntityRef        : String -> EntityRef
    HexCharRef       : String -> HexCharRef
    DecCharRef       : String -> DecCharRef
                     : String -> FooCharDataText
    CDATASection     : String -> CharDataPart
                     : Ref -> CharDataPart
    Literal          : FooCharDataText -> CharDataPart
    Text             : List(CharDataPart) -> CharData
    DocTypeDecl      : QName * ExternalID -> DocTypeDecl
    DocTypePrologue  : DocTypeDecl * List(Misc) -> DocTypePrologue
    VersionSingle    : VersionNum -> VersionValue
    Version          : VersionNum -> VersionValue
    EncodingSingle   : EncodingName -> EncodingValue
    Encoding         : EncodingName -> EncodingValue
    StandaloneSingle : YesNo -> StandaloneValue
    Standalone       : YesNo -> StandaloneValue
    EncodingDecl     : EncodingValue -> EncodingDecl
    VersionDecl      : VersionValue -> VersionInfo
    StandaloneDecl   : StandaloneValue -> StandaloneDecl
    XMLDecl          : VersionInfo * Option(EncodingDecl) * Option(StandaloneDecl) -> XMLDecl
                     : PI -> Misc
    Comment          : Comment -> Misc
    Epilogue         : List(Misc) -> Epilogue
    Prologue         : Option(XMLDecl) * List(Misc) * Option(DocTypePrologue) -> Prologue
    PublicExternalID : PublicLit * SystemLit -> ExternalID
    SystemExternalID : SystemLit -> ExternalID
    PI               : PITarget * PIChars -> PI
                     : String -> YesNo
                     : String -> EncodingName
                     : String -> VersionNum
                     : String -> PublicLit
                     : String -> SystemLit
                     : String -> PIChars
                     : String -> PITarget
    Prefix           : NCName -> Qualifier
    QName            : Option(Qualifier) * NCName -> QName
                     : String -> NCName
                     : String -> Comment


signature
  constructors
    Some : a -> Option(a)
    None : Option(a)


signature
  constructors
    Cons : a * List(a) -> List(a)
    Nil  : List(a)
    Conc : List(a) * List(a) -> List(a)
