There is, however, one "gotcha" in Haskell precedence where it is easy to make a
mistake. Functions take precedence over operators. The result of this is that the
expression "f g 5" means "apply g (and 5) as arguments to f" not "apply the result of
(g 5) to f." Most of the time, this sort of error will produce a compiler error message,
since, for example, f will require an Int as an argument rather than another function.
However, sometimes the situation can be worse than this, and you can write something
valid but wrong: