exference finds ``` \ f1 f2 f3 let e = f2 (\ g f3 (f1 (\ f17 f3 (f17 g)) g)) in f1 (\ f12 f3 (f12 e)) e ``` which matches the type. ChatGPT gives a wrong result: ``` apSel f g h = f (\x g (x h)) h ```