:: (a -> b) -> (c -> a) -> c -> b package:pointless-fun

Function composition which calls the right-hand function eagerly; i.e., making the left-hand function strict in its first argument.
(f .! g) x = f $! g x
This defines the composition for the sub-category of strict Haskell functions. If the Functor class were parameterized by the domain and codomain categories (e.g., a regular Functor f would be CFunctor (->) (->) f instead) then this would allow us to define functors CFunctor (->) (!->) f where fmap f . fmap g = fmap (f .! g).