previous   next   up   top  Beyond Church encoding: Boehm-
Berarducci isomorphism of algebraic data types and polymorphic
lambda-terms     In 1985, Corrado Boehm and Alessandro
Berarducci published the encoding of strictly-positive algebraic
data types in polymorphic lambda-calculus (System F). They
showed how to systematically, automatically translate operations
on data types -- construction and especially pattern-matching --
into the target language that has only applications and
abstractions. They proved that the encoding is one-to-one and
onto: it encodes all strictly-positive algebraic data types with
no junk. For example, the set of all closed normal terms of the
type forall a. ((a->a)->a->a) is exactly the set of encoded
natural numbers. Polymorphic types become ``a system of notation
to describe data structures''. Furthermore, the encoding
commutes with operations on data types: it is an isomorphism. In
modern terms, they showed how to construct an initial algebra of
a strictly-positive functor using a