Monads define Semigroups via
instance Monad m => Semigroup (ma) where (<>) = (>>)
using FlexibleInstances.
If I wanted to make Maybe a in Semigroup this way, I would run Intance in the overlap, because Data.Semigroup defines
instance Semigroup a => Semigroup (Maybe a)
What is a Haskell way to resolve something like this?
source share