Add instances for Monad, Applicative, Alternative, Foldable, Traversable