postulate A:: Type f :: ((A->A)->A) -> A = \(x::(A -> A) -> A) -> x (\(a::A) -> a)