id := fun (A : *) (x : A) . x ; foo := fun (A B : *) (f : A -> B) (x : A) . id (A -> B) f (id A x) ;