[Haskell] Re: Wanted: tricks for conflicting instances

oleg at pobox.com oleg at pobox.com
Sat Jun 16 03:26:15 EDT 2007


Conal Elliott wrote:

> The problem is that instance selection (in GHC at least) ignores the
> contexts...  Is it plausible to improve instance selection to use
> contexts?  I imagine doing so would require some kind of backtracking
> search.

Indeed the instance selection depends only on the types but not on
their constraints. That is a feature of Haskell, and it is a useful
feature (as shown in the HList paper). Still, as Jeff said, instance
selection based on contexts and backtracking compile-time search are
possible. 

For example, the article 
	http://okmij.org/ftp/Haskell/poly2.txt
says: We also show how to write typeclass instances with
back-tracking: if one instance does not apply, the typechecker will
chose the `next' instance -- in the precise meaning of `next'.

The following article about controlling instance selection and
resolving ambiguous overloading might also be helpful:
	http://okmij.org/ftp/Haskell/typecast.html#ambiguity-resolution


More information about the Haskell mailing list