<div dir="ltr"><div>Hi all,<br></div>I'm surprised this doesn't work:<br><div><br><div><span style="font-family:monospace,monospace">data SomeData = forall e. (Typeable e, Eq e) => SomeData e<br><br>(===) :: (Typeable a, Typeable b, Eq a, Eq b) =>  a ->  b ->  Bool<br>(===) x y = cast x == Just y<br><br>test :: SomeData' ->  Bool<br>test (SomeData' e) | e === Nothing = True<br>test _ = False</span><br><br></div><div>It says<br><span style="font-family:monospace,monospace"> Could not deduce (Eq a1) arising from a use of ‘===’</span><br><br></div><div>How can I achieve something of the same effect?<br><br></div><div>Thanks<br></div><div>Corentin<br></div></div></div>