pa <*> a <*> (pa <*> b <*> c) (pa <*> a) <*> ((pa <*> b) <*> c) pc <*> (pa <*> a) <*> (pa <*> b) <*> c pc <*> (pc <*> (pa <*> a)) <*> pa <*> b <*> c pc <*> (pc <*> pc <*> pa <*> a) <*> pa <*> ... pc <*> (p (c c app) <*> a) <*> pa <*> ... pc <*> pc <*> p (c c app) <*> a <*> pa <*> ... p (c c (c c app)) <*> a <*> pa <*> ... p ($ app) <*> (p (c c (c c app)) <*> a) <*> ... pc <*> p ($ app) <*> p (c c (c c app)) <*> a <*> ... p (c ($ app)) <*> p (c c (c c app)) <*> ... p ((c ($ app)) (c c (c c app))) <*> ... [ghci] ((c ($ (,))) (c c (c c (,)))) 1 2 3 = (1,(2,3)) p (\a b c -> app a (app b c)) <*> ... p (\a b c -> app (app a b) c) <*> ...