[Haskell-cafe] in-equality type constraint?
sschuldenzucker at uni-bonn.de
Fri Jul 16 20:32:43 EDT 2010
On 07/17/2010 01:08 AM, Paul L wrote:
> Does anybody know why the type families only supports equality test
> like a ~ b, but not its negation?
This has annoyed me, too. However, HList provides something quite similar,
namely the TypeEq fundep-ed class which will answer type-equality with a
type-level boolean. (this is actually more powerful than a simple constraint,
because it allows us to introduce type-level conditionals)
To turn it into a predicate, you can use something like
> class C a b c where -- ...
> -- for some reason, we can provide an instance C a b [c] *except* for
> -- a ~ c.
> instance (TypeEq a c x, x ~ HFalse) => a b [c] where -- ...
(Note that for it to work over all types, you have to import one of the
More information about the Haskell-Cafe