Haskell operator vs function precedence
I am trying to verify something for myself about operator and function precedence in Haskell. For instance, the following code list = map foo $ xs can be rewritten as list = (map foo) $ (xs) and will eventually be list = map foo xs My question used to be, why the first formulation would not be rewritten as list = (map foo $) xs since function precedence is always higher than operator precedence, but I think that I have found the answer: operators are simply not allowed to be arguments of functions (except of course, if you surround them with parentheses). Is this right? If so, I find it odd,