I am reading The Craft of Functional Programming (2nd edition), where it is briefly mentioned on page 404 that function application is also a Monad, the author calls it the identity Monad.
However I have difficulty imagining how function application can be made an instance of the type class Monad in Haskell in the same spirit as the Maybe data structure is made an instance of the Monad type class.
This leads me also to an other question: How is the function application a type constructor (in the same way as Maybe is)?
Could someone please give some insight into this mystery ?