2008/3/2 Roman Cheplyaka <[EMAIL PROTECTED]>: > * Krzysztof Skrzętnicki <[EMAIL PROTECTED]> [2008-03-02 01:21:42+0100] > > > 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. > > Also there's nice possibility of defining Maybe a without ADT. > type Maybe a = (a, Bool) > just x = (x, True) > nothing = (undefined, False)
That's a hack. This is my favorite: type Maybe a = forall b. (a -> b) -> b -> b just x = \j n -> j x nothing = \j n -> n Luke
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
