Type Isomorphisms Simplify XMLProgramming

Stc
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.