On Dec 28, 2007, at 12:06 PM, Ralf Laemmel wrote:
You did not say anything that's imprecise about "mentioning each
other
in a cycle", just the well-known fact that it's not equivalent to
total
termination checking (in fact, it's neither fully an overestimate nor
underestimate of termination -- it's just an estimate that's likely
to
be right when used in the context of default method definitions).
[The hard general cases]
... and that's still very imprecise because the dots don't mean
anything proper.
Are you willing to look at the pattern *after* overloading resolution.
Let's have a proper termination checker!
It occurs to me to ask: would "returns bottom given non-bottom
arguments according to strictness analysis" be good enough? Because
that information is useful for other things as well, and relatively
easy to compute using strictness analysis. Then "extra pragmas" might
be as simple as pragmas saying "yes, compiler, I expect the following
function to return _|_"---again an annotation that has other potential
uses.
-Jan-Willem Maessen
_______________________________________________
Haskell mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell