let p x y = fun z -> z x y ;; let q () = let x1 = fun x -> p x x in let x2 = fun z -> x1 (x1 z) in let x3 = fun z -> x2 (x2 z) in let x4 = fun z -> x3 (x3 z) in let x5 = fun z -> x4 ( x4 z) in x5 (fun z -> z);;