Monad reconsidered