"Krzysztof Skrzętnicki" <[EMAIL PROTECTED]> writes:

> Well, it is simply
>
>> coerce :: a -> b
>> coerce _ = undefined
>
> so coerce is simply empty function. But still, it is possible to write a
> function of type (a->b).
> Well, possibly I didn't write anything particularly new, but please excuse
> me for I'm still in
> sort of a shock after I've discovered it.

You have to remember that types in Haskell all have
undefined as a member (this is an inevitable consequence of
allowing arbitrary recursion). So your coerce is returning
something that is in the type claimed by the result, so
there's nothing shocking about it!

-- 
Jón Fairbairn                                 [EMAIL PROTECTED]


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to