
20 Jul
2009
20 Jul
'09
9:57 p.m.
Maurício wrote:
-- warning: untested code --
data (Eq b) => Named a b = Named a b
equivalent :: Named a b -> Named c b -> Bool equivalent (Named _ a1 ) (Named _ a2) = (a1 == a2)
which doesn't work. "data (Eq b) =>" is useless broken syntax that should be removed from the standard. Either you can use data Named a b = Named a b equivalent :: (Eq b) => Named a b -> Named c b -> Bool or use some GHC extension (GADTs) and do data Named a b where Named :: (Eq b) => a -> b -> Named a b equivalent :: Named a b -> Named c b -> Bool -Isaac