Do we Need Dependent Types?
Inspired by , we describe a technique for defining, within the
Hindley-Milner type system, some functions which seem to require a
language with dependent types. We illustrate this by giving a general
definition of zipWith for which the Haskell library provides a family
of functions, each member of the family having a different type and
arity. Our technique consists in introducing ad hoc codings for natural
numbers which resemble numerals in lambda-calculus.
Articles published in DAIMI PB are licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.