Fri Dec 30 09:24:26 EST 2011

Supporting multi-arity references in Term?

Still about supporting that isomorphism.  The simplest modification
seems to be to allow Var to also be a list of variables.

  -- Variables can refer to data values or functions.  In the latter
  -- case type refers to the return value's type.
  data Var    = Var {varType :: Type, varName :: VarName}
              | VarList [Var]
              deriving (Eq,Show)

This is possibly very powerful, but it feels like a bit of a dirty
hack though..  It "should" be the case that this can be done at the
typed level, to make it more general.

I don't understand the consequences yet..  This might be problematic.