clamped = num `max` min' `min` max'
So
a `foo` b `bar` c
(bar (foo a b) c)
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