
8 Oct
2009
8 Oct
'09
5:19 a.m.
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 | jochem@functor.nl | jochem@牛在田里.com