I don't know whether its a good name or not (the ===), but I have the following in a generic utilities file I have, and I use it every now and then.

(===) :: (Typeable a, Typeable b, Eq b) => a -> b -> Bool
(===) x y = cast x == Just y

(Notice you don't need Eq a in the context)

On 11 June 2010 12:51, Ben Millwood <haskell@benmachine.co.uk> wrote:
On Fri, Jun 11, 2010 at 12:46 AM, Felipe Lessa <felipe.lessa@gmail.com> wrote:
>
>  eqTypeable :: (Typeable a, Eq a, Typeable b, Eq b) => a -> b -> Bool
>  eqTypeable x y = case cast y of
>                     Just y' -> x == y'
>                     Nothing -> False
>

...or indeed:

eqTypeable x y = cast x == Just y
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe



--
Ozgur Akgun