minh thu wrote:
> Also, I'd like to know why
>
> id id True
>
> is permitted but not
>
> (\f -> f f True) id

If you want to do this, answer the question "what is the type of (\f ->
f f True)"?
You can do this, by the way, using rank-2 types:
> {-# LANGUAGE Rank2Types, PatternSignatures #-}
> thisIsAlwaysTrue = (\ (f :: forall a. a -> a) -> f f True) id

Cheers, Jochem
-- 
Jochem Berndsen | joc...@functor.nl | joc...@牛在田里.com
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to