[Haskell-cafe] pattern match on forall'ed data

Corentin Dupont corentin.dupont at gmail.com
Wed Jul 20 16:30:39 UTC 2016


I see....
The think is, I am interested to know if "e" is "Nothing", whatever the
type of Nothing is!



On Wed, Jul 20, 2016 at 5:44 PM, Patrick Chilton <chpatrick at gmail.com>
wrote:

> It's because you're doing === Nothing and the type of the Nothing is
> ambiguous (Maybe a1).
>
> On Wed, Jul 20, 2016 at 5:18 PM, Corentin Dupont <
> corentin.dupont at gmail.com> wrote:
>
>> Hi all,
>> I'm surprised this doesn't work:
>>
>> data SomeData = forall e. (Typeable e, Eq e) => SomeData e
>>
>> (===) :: (Typeable a, Typeable b, Eq a, Eq b) =>  a ->  b ->  Bool
>> (===) x y = cast x == Just y
>>
>> test :: SomeData' ->  Bool
>> test (SomeData' e) | e === Nothing = True
>> test _ = False
>>
>> It says
>>  Could not deduce (Eq a1) arising from a use of ‘===’
>>
>> How can I achieve something of the same effect?
>>
>> Thanks
>> Corentin
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> To (un)subscribe, modify options or view archives go to:
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>> Only members subscribed via the mailman list are allowed to post.
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20160720/c0a0065c/attachment.html>


More information about the Haskell-Cafe mailing list