-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Generically derive Group instances. -- -- Generically derive group instances: -- --
-- {-# LANGUAGE DeriveGeneric, DerivingVia #-}
-- import GHC.Generics ( Generic, Generically (..) )
--
-- data MyRecord
-- = MyRecord
-- { field1 :: Sum Double
-- , field2 :: Product Double
-- , field3 :: ( Sum Int, Sum Int )
-- }
-- deriving Generic
-- deriving ( Semigroup, Monoid, Group )
-- via Generically MyRecord
--
@package groups-generic
@version 0.3.1.0
-- | Orphan instances allowing generic deriving of Group instances:
--
--
-- > data MyRecord
-- > = MyRecord
-- > { field1 :: Sum Double
-- > , field2 :: Product Double
-- > , field3 :: ( Sum Int, Sum Int )
-- > }
-- > deriving Generic
-- > deriving ( Semigroup, Monoid, Group )
-- > via Generically MyRecord
--
--
-- Also includes some instances for newtypes from base such as
-- Identity and Const.
module Data.Group.Generics
instance (GHC.Generics.Generic g, GHC.Base.Monoid (Generic.Data.Internal.Generically.GenericProduct g), Data.Group.Group (GHC.Generics.Rep g ())) => Data.Group.Group (Generic.Data.Internal.Generically.GenericProduct g)
instance (GHC.Generics.Generic g, GHC.Base.Monoid (Generic.Data.Internal.Generically.Generically g), Data.Group.Group (GHC.Generics.Rep g ())) => Data.Group.Group (Generic.Data.Internal.Generically.Generically g)
instance Data.Group.Group (GHC.Generics.U1 p)
instance Data.Group.Group (f p) => Data.Group.Group (GHC.Generics.Rec1 f p)
instance Data.Group.Group (f p) => Data.Group.Group (GHC.Generics.M1 i c f p)
instance Data.Group.Group g => Data.Group.Group (GHC.Generics.K1 i g p)
instance Data.Group.Group g => Data.Group.Group (GHC.Generics.Par1 g)
instance (GHC.Generics.Generic g, Data.Group.Group (Generic.Data.Internal.Generically.Generically g), Data.Group.Abelian (GHC.Generics.Rep g ())) => Data.Group.Abelian (Generic.Data.Internal.Generically.Generically g)
instance (GHC.Generics.Generic g, GHC.Base.Monoid (Generic.Data.Internal.Generically.GenericProduct g), Data.Group.Abelian (GHC.Generics.Rep g ())) => Data.Group.Abelian (Generic.Data.Internal.Generically.GenericProduct g)