Type Isomorphisms Simplify XMLProgramming
ComputingScienceColloquium Date: November 27 Time: 11:00 Room: BBL-505 ----+++ Speaker: Frank Atanassow ----+++ Title: Type isomorphisms simplify XML programming ----+++ Abstract A program that processes XML documents can be implemented using an XML data binding. Programming with an XML data binding can be painful, because the classes or types generated by the data binding are not in the style native to the host language. JAXB, a Java-XML data binding, supports binding customizations to mitigate this problem. Programming with a type-safe binding such as our Haskell-XML data binding UUXML is even worse. To address this problem, rather than employing binding customizations, we exploit the theory of type isomorphisms to generically produce conversions between the complex datatypes generated by our binding, and more conventional Haskell-style datatypes. We give a Generic Haskell program that produces, for many pairs of canonically isomorphic types, the requisite pair of isomorphisms. This approach helps obviate the practical need for binding customizations and simplifies XML programming with our UUXML binding. A straightforward generalization of this technique allows us to treat schema subtyping in a simple way.