On Sun, Mar 26, 2006 at 01:22:17PM -0500, Jim Apple wrote:
> According to Pierce's book, O'Caml has an optional equirecursive type
> extension that turns off the occurs check. Is there any particular
> reason Haskell doesn't have that available?

It's certainly feasible, though turning off the occurs check doesn't
do it: you need to use the unification algorithm for regular trees (see
e.g. section 6.7 of the revised Dragon Book).  You also need to decide
what to do about

        type T = T

I think the arguments against it are:
 * many common errors will lead to perfectly legal types.
 * it adds convenience, but not expressive power.
 * it only works for regular types, where the arguments of uses of the
   type constructor on the rhs are the same as (or a permutation of)
   the arguments on the lhs, so this is out:

        type T a = Either a (T (a,a))

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to