
19 Jul
2005
19 Jul
'05
4:10 a.m.
On Tue, 19 Jul 2005, Ben Lippmeier wrote:
An example, using some arbitrary data type "Thingo":
class ShallowEq a where shallowEq :: a -> a -> Bool
data Thingo a b = TOne a | TTwo a b Int Char Float | TThree Int Char b b
Questions: 1) Does anyone know a better/existing way to implement ShallowEq that doesn't involve enumerating all the constructors in the data type?
A more general approach are projection functions like getTOne :: Thingo a b -> Maybe a getTOne (TOne x) = Just x getTOne _ = Nothing Then you can map the values to be compared into a Maybe and you need only a shallowEq for Maybe.