Data declaration with constraint
(short introduction with reference to current discussion)
(maybe multi-parameter type classes are a way out)
|(One intermediate revision by one user not shown)|
Revision as of 17:43, 21 December 2007
I have declared
data C a => T a = Cons a
and I hoped that now the type checker knows,that every value of type
instance Vector T where add (Cons x) (Cons y) = Cons (x+y) -- requires Num constraint on type a
Only functions can have type constraints.The type constraint of a
The designers of Haskell 98 do now think, that it was a bad decision to allow constraints on constructors.
But how can one bake type constraints into a type? You cannot. One should insert a discussion here, whether it is sensible to want this.
For now you have to stick to multi-parameter type classes,where