{-# LANGUAGE Safe #-}
{-# OPTIONS_GHC -Wno-orphans #-}

module Generics.Deriving.Semigroup (module Generics.Deriving.Semigroup.Internal) where

import Data.Semigroup (WrappedMonoid(..))

import Generics.Deriving.Monoid.Internal (GMonoid(..))
import Generics.Deriving.Semigroup.Internal

instance GMonoid m => GSemigroup (WrappedMonoid m) where
  gsappend :: WrappedMonoid m -> WrappedMonoid m -> WrappedMonoid m
gsappend (WrapMonoid m
a) (WrapMonoid m
b) = m -> WrappedMonoid m
forall m. m -> WrappedMonoid m
WrapMonoid (m -> m -> m
forall a. GMonoid a => a -> a -> a
gmappend m
a m
b)