generic-data-0.4.0.0: test/example.hs
{-# LANGUAGE
CPP,
DeriveGeneric #-}
#if __GLASGOW_HASKELL__ >= 806
{-# LANGUAGE
DerivingStrategies,
DerivingVia #-}
#endif
import Data.Semigroup (Semigroup(..))
import GHC.Generics
import Generic.Data (gmappend, Generically(..))
import Generic.Data.Orphans ()
data Foo a = Bar [a] [a] deriving Generic
instance Semigroup (Foo a) where
(<>) = gmappend
#if __GLASGOW_HASKELL__ >= 806
data Foo2 a = Bar2 [a] [a]
deriving Generic
deriving Semigroup via (Generically (Foo2 a))
#endif
main :: IO ()
main = pure ()