Make seperated named functions for the Monoid <=> Maybe cast.

Also, Semigroup a -> Monoid (Maybe a) should actually only require a semigroup.