[Haskell-cafe] Adding Ord constraint to instance Monad Set?
MR K P SCHUPKE
k.schupke at imperial.ac.uk
Wed Mar 31 13:36:28 EST 2004
>This syntax would also have the advantage that you can apply different
>contexts to different constructors.
Er, you can already do that as I just pointed out:
data (Ord a,Num b) => Either a b = Left a | Right b
Note that to constrain the same type variable differently
for different constructors would be a type error. In other
data Either a =
Num a => Left a
Ord a => Right a
Is not valid, because (forall a . Num a) is not the same
type as (forall a . Ord a). So infact the current way
of writing it as
data (Num a) => Either a = Left a | Right a
Is better because it does not allow you to make that mistake.
More information about the Haskell-Cafe