between (hackage): It turns out that this combinator  is a powerful thing. It was abstracted from following (commonly used) pattern f . h . g where f and g are fixed.  This library not only defines ~@~ combinator, but also some derived combinators that can help us easily define a lot of things including lenses. See lens package for detais on what lenses are.  Function Data.Function.on can be implemented using ~@~ as:  If function on3 existed in base then it could be defined as:  Other usage examples and documentation can be found in Data.Function.Between module.
Keywords: bsd3|data|library