-- 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)