-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Generically derive Group instances. -- -- Generically derive group instances: -- --
--   data MyRecord
--     = MyRecord
--     { field1 :: Sum Double
--     , field2 :: Product Double
--     , field3 :: ( Sum Int, Sum Int )
--     }
--     deriving Generic
--     deriving ( Semigroup, Monoid, Group )
--       via GenericProduct MyRecord
--   
@package groups-generic @version 0.1.0.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 GenericProduct MyRecord
--   
-- -- Also includes some instances for newtypes from base such as -- Identity and Const. module Data.Group.Generics 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 (Data.Group.Group (f1 p), Data.Group.Group (f2 p)) => Data.Group.Group ((GHC.Generics.:*:) f1 f2 p) instance Data.Group.Group (f (g p)) => Data.Group.Group ((GHC.Generics.:.:) f g p) 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.Semigroup 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 a => Data.Group.Group (Data.Ord.Down a) instance Data.Group.Group a => Data.Group.Group (Data.Functor.Identity.Identity a) instance Data.Group.Group a => Data.Group.Group (Data.Functor.Const.Const a b) instance Data.Group.Group (Data.Proxy.Proxy s) instance Data.Group.Abelian (GHC.Generics.U1 p) instance Data.Group.Abelian (f p) => Data.Group.Abelian (GHC.Generics.Rec1 f p) instance Data.Group.Abelian (f p) => Data.Group.Abelian (GHC.Generics.M1 i c f p) instance Data.Group.Abelian g => Data.Group.Abelian (GHC.Generics.K1 i g p) instance Data.Group.Abelian g => Data.Group.Abelian (GHC.Generics.Par1 g) instance (Data.Group.Abelian (f1 p), Data.Group.Abelian (f2 p)) => Data.Group.Abelian ((GHC.Generics.:*:) f1 f2 p) instance Data.Group.Abelian (f (g p)) => Data.Group.Abelian ((GHC.Generics.:.:) f g p) 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) instance (GHC.Generics.Generic g, GHC.Base.Semigroup g, GHC.Base.Monoid (Generic.Data.Internal.Generically.Generically g), Data.Group.Abelian (GHC.Generics.Rep g ())) => Data.Group.Abelian (Generic.Data.Internal.Generically.Generically g) instance Data.Group.Abelian a => Data.Group.Abelian (Data.Ord.Down a) instance Data.Group.Abelian a => Data.Group.Abelian (Data.Functor.Identity.Identity a) instance Data.Group.Abelian a => Data.Group.Abelian (Data.Functor.Const.Const a b) instance Data.Group.Abelian (Data.Proxy.Proxy s)