Document strictness properties of Maybe's Semigroup instance
The current instance is less lazy than possible.
An alternative lazier definition was brought up on the libraries mailing list by Donnacha Oisín Kidney:
instance Semigroup a => Semigroup (Maybe a) where Nothing <> b = b Just a <> b = Just (maybe a (a<>) b)
It would be good to document that the instance is lazier than possible, and ideally also why.