I really think we deserve more syntax that allowed something like this, because otherwise one needs to read `(bar (foo a b) c)` inside-out.
I never thought of it that way, but it is true that it can be used as a pipe.
Fundamentally it's just the dual of (): Haskell lets you use operators as infix functions by wrapping them in () so
(+) 1 2
1 + 2
You can even combine those through sections, which serve to partially apply infix operators: https://wiki.haskell.org/Section_of_an_infix_operator
I never thought of it that way, but it is true that it can be used as a pipe.
Fundamentally it's just the dual of (): Haskell lets you use operators as infix functions by wrapping them in () so
is the same as and conversely lets you use prefix (binary) functions as operators by wrapping them in backticks.You can even combine those through sections, which serve to partially apply infix operators: https://wiki.haskell.org/Section_of_an_infix_operator