laid out the shape of the Functor instances for Procompose