Isaac wrote:

> I wonder whether it would be safe for the compiler to infer simply by
> the default methods mentioning each other in a cycle.  It might miss
> some cases when (probably involving laziness) the default methods
> actually terminate and form an intended set of implemention, and warn
> when it shouldn't... which is bad, but does that ever happen?

"mentioning each other in a cycle" is too imprecise unfortunately at
least for two reasons:

a) we could face a well-designed mutual recursion.
b) we could face co-induction.

The ultimate solution is to extend type signatures by termination
requirements and to have a termination checker enforcing them.
For instance, Andreas Abel has done groundbreaking work on termination checking.

Cheers,
Ralf
_______________________________________________
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to