data Semi a = Semi a

instance Semigroup a => Semigroup (Semi a) where
  (Semi a) <> (Semi a') = Semi (a <> a')