[TYPES] recursive data types with negative occurrence (besides higher-order abstract syntax)

Eijiro Sumii sumii at saul.cis.upenn.edu
Fri May 21 17:55:28 EDT 2004


Dear all,

I'm looking for examples (as many as possible) of recursive data types
with negative occurrence, like

  type lam = Lam of (lam -> lam) | App of lam * lam

for instance.  So far, I've only found higher-order abstract syntax
and its variants (including the "universal domain").  If somebody
knows any other example, please drop me a message!  I'll post a
summary later to this list.

--
Eijiro Sumii (http://www.cis.upenn.edu/~sumii/)
Department of Computer and Information Science, University of Pennsylvania

P.S. I'm also interested in how to convert higher-order abstract
syntax into "de Bruijn index" syntax _without_ going through
first-order abstract syntax (or a straightforward deforestation of
doing so).  Please let me know, too, if there is a better way to do
this.


More information about the Types-list mailing list