
4 Jun
2016
4 Jun
'16
3:29 a.m.
would this work: {-# LANGUAGE MultiParamTypeClasses, InstanceSigs #-} module Mdk where data C a b = Ab a b | Ba b a class Mdk a b where mdk::a -> b -> C a b instance (Eq a, Eq b) => Eq (C a b) where (==)::C a b -> C a b -> Bool (==) (Ab a1 b1) (Ab a2 b2) = a1 == a2 && b1 == b2 (==) (Ab a1 b1) (Ba b2 a2) = a1 == a2 && b1 == b2 (==) (Ba b2 a2) (Ab a1 b1) = a1 == a2 && b1 == b2 (==) (Ba b2 a2) (Ba b1 a1) = a1 == a2 && b1 == b2 ?