1{-# LANGUAGE UndecidableInstances #-} 2 3data Semi = Semi [String] Int 4 5instance Semigroup Int => Semigroup Semi where 6 (Semi ss n) <> (Semi strs i) = Semi (ss <> strs) (n <> i) 7 8