Does (f . g) x y z equal ((((f . g) x) y) z)  in haskell?

Yes: (f . g) x y z = (((f (g (x)) (y)) (z)) = f (g x) y z since in Haskell as a higher-order functional language a bare function mentioned to the left is supposed to bind its argument stronger first before any lower-order arguments are allowed to start acting rightwards.  (did-not (have (this-readability-problem)) lisp)