HORIZON HASKELLDocslts/ghc-9.10.xc74966e2026-09-27Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · c74966e · 2026-09-27

Modulelinear-base-0.4.0Haskell2010

Prelude.Linear.Internal.Generically

Prior to GHC 9.4, linear-base defined its own versions of Generically and Generically1. As a temporary workaround to enable compilation on both GHC 9.4 and 9.2, this module simply re-exports Generics.Linear, while the 9.2 version exposes linear-base's own implementations.

  • 32 types
  • 5 classes
  • 8 values
newtypenewtype Generically a
#

A datatype whose instances are defined generically, using the Generic representation. Generically1 is a higher-kinded version of Generically that uses Generic1.

Generic instances can be derived via Generically A using -XDerivingVia.

{-# LANGUAGE DeriveGeneric      #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE DerivingVia        #-}

import GHC.Generics (Generic)

data V4 a = V4 a a a a
  deriving stock Generic

  deriving (Semigroup, Monoid)
  via Generically (V4 a)

This corresponds to Semigroup and Monoid instances defined by pointwise lifting:

instance Semigroup a => Semigroup (V4 a) where
  (<>) :: V4 a -> V4 a -> V4 a
  V4 a1 b1 c1 d1 <> V4 a2 b2 c2 d2 =
    V4 (a1 <> a2) (b1 <> b2) (c1 <> c2) (d1 <> d2)

instance Monoid a => Monoid (V4 a) where
  mempty :: V4 a
  mempty = V4 mempty mempty mempty mempty

Historically this required modifying the type class to include generic method definitions (-XDefaultSignatures) and deriving it with the anyclass strategy (-XDeriveAnyClass). Having a /via type/ like Generically decouples the instance from the type class.

Constructors

Instances5Semigroup, Monoid, Consumable, Dupable, Movable
typetype D1 = M1 D
#

Type synonym for encoding meta-information for datatypes

typetype C1 = M1 C
#

Type synonym for encoding meta-information for constructors

Instances5GSum, GSumGet, GSumPut, SumSize
  • GHashable arity a => GSum arity (C1 c a)Defined in hashable-1.4.7.0 · Data.Hashable.Generic.Instances
  • GBinaryGet a => GSumGet (C1 c a)Defined in binary-0.8.9.3 · Data.Binary.Generic
  • SumSize (C1 c a)Defined in binary-0.8.9.3 · Data.Binary.Generic
  • GBinaryPut a => GSumPut (C1 c a)Defined in binary-0.8.9.3 · Data.Binary.Generic
  • SumSize (C1 c a)Defined in hashable-1.4.7.0 · Data.Hashable.Generic.Instances
typetype S1 = M1 S
#

Type synonym for encoding meta-information for record selectors

datadata MP1 (a :: Multiplicity) (b :: k -> Type) (c :: k) where
#

Types with nonlinear or multiplicity-polymorphic fields should use MP1 under S1. Unfortunately, Template Haskell (and GHC Generics) currently lack any support for such types, so their instances must currently be written entirely manually. We may add some functions to ease the pain at some point.

Generic-deriving classes that do not involve linear types should treat MP1 m much as they treat M1: dig through it to get to the meat. Unfortunately, some futzing about may be necessary to convince the type checker that multiplicities work out.

Generic-deriving classes that use linear types may have to treat MP1 m specially. In particular, they may need to constrain m to be 'One or 'Many, or to match some other type variable.

Constructors

Instances36Generic1, GApplicative, Monad, Applicative, Foldable, Traversable, …
datadata (:*:) (f :: k -> Type) (g :: k -> Type) (p :: k)
#

Products: encode multiple arguments to constructors

Constructors

  • f p :*: g pinfixr 6
Instances53GNFData, RecursivelyShrink, GCoArbitrary, GFunction, GBinaryGet, GBinaryPut, …
datadata S
#

Tag for M1: record selector

datadata (:+:) (f :: k -> Type) (g :: k -> Type) (p :: k)
#

Sums: encode choice between constructors

Constructors

Instances47GNFData, RecursivelyShrink, GCoArbitrary, GFunction, GBinaryGet, GBinaryPut, …
datadata V1 (p :: k)
#

Void: used for datatypes without constructors

Instances39GNFData, RecursivelyShrink, GBinaryGet, GBinaryPut, GHashable, Generic1, …
  • Generic1 V1Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • GNFData arity V1Defined in deepseq-1.5.0.0 · Control.DeepSeq
  • RecursivelyShrink V1Defined in QuickCheck-2.15.0.1 · Test.QuickCheck.Arbitrary
  • GBinaryGet V1Defined in binary-0.8.9.3 · Data.Binary.Generic · orphan
  • GBinaryPut V1Defined in binary-0.8.9.3 · Data.Binary.Generic · orphan
  • GHashable arity V1Defined in hashable-1.4.7.0 · Data.Hashable.Generic.Instances · orphan
  • Generic1 V1Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Unsatisfiable (('Text "Cannot derive a data Applicative instance for" ':$$: s) ':$$: 'Text "because empty types cannot implement pure.") => GApplicative s V1Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Applicative
  • Functor V1Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Foldable V1Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Foldable
  • Traversable V1Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Traversable
  • Foldable1 V1Defined in base-4.20.2.0 · Data.Foldable1
  • Eq1 V1Defined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Ord1 V1Defined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Read1 V1Defined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Show1 V1Defined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Contravariant V1Defined in base-4.20.2.0 · Data.Functor.Contravariant
  • GFinite V1Defined in random-1.2.1.3 · System.Random.GFinite
  • GSemigroup V1Defined in semigroups-0.20 · Data.Semigroup.Generic
  • Functor V1Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Functor
  • Traversable V1Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • GTraversable V1Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • GConsumable V1Defined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Consumable
  • GDupable V1Defined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Dupable
  • GMovable V1Defined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Movable
  • GSubterms V1 aDefined in QuickCheck-2.15.0.1 · Test.QuickCheck.Arbitrary
  • GSubtermsIncl V1 aDefined in QuickCheck-2.15.0.1 · Test.QuickCheck.Arbitrary
  • Eq (V1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Data p => Data (V1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Data
  • Ord (V1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Read (V1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Show (V1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Generic (V1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Semigroup (V1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Generic (V1 p)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • type Rep (V1 p) = D1 ('MetaData "V1" "GHC.Internal.Generics" "ghc-internal" 'False) V1Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • type Rep1 V1 = D1 ('MetaData "V1" "GHC.Internal.Generics" "ghc-internal" 'False) V1Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • type Rep (V1 p) = D1 ('MetaData "V1" "GHC.Internal.Generics" "ghc-internal" 'False) V1Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • type Rep1 V1 = D1 ('MetaData "V1" "GHC.Internal.Generics" "ghc-internal" 'False) V1Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
newtypenewtype (:.:) (f :: k2 -> Type) (g :: k1 -> k2) (x :: k1)
#

The composition operator for types. We use our own here because for many classes, it's possible to share generic deriving classes between GHC.Generics and Generics.Linear by just instantiating them for both composition operators (and MP1).

Constructors

Instances31Generic1, GApplicative, Applicative, Foldable, Alternative, Eq1, …
classclass Generic a where
#

Generic is exactly the same as GHC.Generics.Generic except that to and from are multiplicity polymorphic. This means they will work equally well in traditional Haskell code and in linearly typed code.

Associated types

Methods

Instances140Generic, …
  • Generic ForeignSrcLangDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic ExtensionDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic VoidDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic AllDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic AnyDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic VersionDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic AssociativityDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic DecidedStrictnessDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic FixityDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic SourceStrictnessDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic SourceUnpackednessDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic ExitCodeDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic BoolDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic CharDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic DoubleDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic FloatDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic IntDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic OrderingDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic WordDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic AnnLookupDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic AnnTargetDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic BangDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic BodyDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic CallconvDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic ClauseDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic ConDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic DecDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic DecidedStrictnessDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic ExpDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic FamilyResultSigDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic FixityDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic FixityDirectionDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic ForeignDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic FunDepDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic GuardDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic InfoDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic InjectivityAnnDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic InlineDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic LitDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic LocDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic MatchDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic ModuleDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic ModuleInfoDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic NameDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic NameFlavourDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic NameSpaceDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic OccNameDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic PatDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic PatSynArgsDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic PatSynDirDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic PhasesDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic PkgNameDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic PragmaDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic RangeDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic RoleDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic RuleBndrDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic RuleMatchDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic SafetyDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic SourceStrictnessDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic SourceUnpackednessDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic SpecificityDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic StmtDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic TyLitDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic TySynEqnDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic TypeDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic TypeFamilyHeadDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic ()Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic a => Generic (GHCGenerically a)Defined in linear-generics-0.2.3 · Generics.Linear.Unsafe.ViaGHCGenerics
  • Generic (Complex a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (First a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Last a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Max a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Min a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (WrappedMonoid m)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Digit a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Containers · orphan
  • Generic (Elem a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Containers · orphan
  • Generic (FingerTree a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Containers · orphan
  • Generic (Node a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Containers · orphan
  • Generic (ViewL a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Containers · orphan
  • Generic (ViewR a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Containers · orphan
  • Generic (Tree a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Containers · orphan
  • Generic (NonEmpty a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Identity a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (First a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Last a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Down a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Dual a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Endo a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Product a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Sum a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (ZipList a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Par1 p)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Maybe a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Ptr a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Ur a)Defined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Ur
  • Generic (TyVarBndr flag)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic (a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic [a]Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (WrappedMonad m a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Arg a b)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Either a b)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Proxy t)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (U1 p)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (V1 p)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (a, b)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (WrappedArrow a b c)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Kleisli m a b)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Const a b)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Ap f a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Alt f a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Rec1 f p)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (URec Char p)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (URec Double p)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (URec Float p)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (URec Int p)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (URec Word p)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (URec (Ptr ()) p)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Code m a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic (a, b, c)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Product f g a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (Sum f g a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (K1 i c p)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (MP1 m f a)Defined in linear-generics-0.2.3 · Generics.Linear.Class
  • Generic ((:*:) f g p)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic ((:+:) f g p)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (a, b, c, d)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (M1 i c f p)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic ((:.:) f g p)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic ((:.:) f g x)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Linear_generics · orphan
  • Generic (a, b, c, d, e)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (a, b, c, d, e, f)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (a, b, c, d, e, f, g)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (a, b, c, d, e, f, g, h)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (a, b, c, d, e, f, g, h, i)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (a, b, c, d, e, f, g, h, i, j)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (a, b, c, d, e, f, g, h, i, j, k)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (a, b, c, d, e, f, g, h, i, j, k, l)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (a, b, c, d, e, f, g, h, i, j, k, l, m)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (a, b, c, d, e, f, g, h, i, j, k, l, m, n)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
classclass Generic1 (f :: k -> Type) where
#

Generic1 is similar to GHC.Generics.Generic1, but has a few differences.

Multiplicity polymorphism

As with Generic, the to1 and from1 methods are multiplicity polymorphic.

Differences in Rep1 representation

Rec1 is not used

Given a type like

newtype Foo a = Foo (Maybe a)

where a single type constructor (here Maybe) is applied to the parameter, GHC.Generics represents the field as Rec1 Maybe. We instead represent it using Par1 :.: Maybe. It is expected that very few real-life uses of GHC.Generics will break as a result, and this simplification means that users don't have to write Rec1 instances for their generic-deriving classes.

Compositions associate in the opposite order

Given a type like

newtype Bar a = Bar (Maybe [Either e a])

where multiple type constructors are layered around the parameter, "GHC.Generics@ represents the field as

Maybe :.: ([] :.: Rec1 (Either e))

We instead represent it as

((Par1 :.: Maybe) :.: []) :.: Either e

Doing it this way prevents to1 and from1 from having to fmap newtype constructors through the composed types, which can be a considerable performance improvement and enables multiplicity polymorphism.

In most cases, modifying generic-deriving classes to accommodate this change is simple: just swap which side of the composition is treated as a generic representation and which as a base type. In a few cases, more restructuring will be needed, which will require using different generic-deriving classes than for GHC.Generics.

Difference in specificity

Users of type application will need to be aware that the kind parameter for Generic1 is marked as inferred, whereas for GHC.Generics.Generic1 it is marked as specified. So you should use, for example, to1 @Maybe rather than to1 @_ @Maybe.

Associated types

Methods

Instances72Generic1, …
  • Generic1 ComplexDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 FirstDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 LastDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 MaxDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 MinDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 WrappedMonoidDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 DigitDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Containers · orphan
  • Generic1 ElemDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Containers · orphan
  • Generic1 FingerTreeDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Containers · orphan
  • Generic1 NodeDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Containers · orphan
  • Generic1 ViewLDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Containers · orphan
  • Generic1 ViewRDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Containers · orphan
  • Generic1 TreeDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Containers · orphan
  • Generic1 NonEmptyDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 IdentityDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 FirstDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 LastDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 DownDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 DualDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 ProductDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 SumDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 ZipListDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 Par1Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 MaybeDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 SoloDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 UrDefined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Ur
  • Generic1 TyVarBndrDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
  • Generic1 []Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 ProxyDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 U1Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 V1Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (WrappedMonad m)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (Arg a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (Either a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (Tuple2 a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (WrappedArrow a b)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (Kleisli m a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (Const a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (Ap f)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (Alt f)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (Rec1 f)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (URec Char)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (URec Double)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (URec Float)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (URec Int)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (URec Word)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (URec (Ptr ()))Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (Tuple3 a b)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • (forall (a :: k). Generic (f a), CheckValid f) => Generic1 (GHCGenerically1 f)Defined in linear-generics-0.2.3 · Generics.Linear.Unsafe.ViaGHCGenerics
  • Generic1 (Product f g)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (Sum f g)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (K1 i c)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (Tuple4 a b c)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (MP1 m f)Defined in linear-generics-0.2.3 · Generics.Linear.Class
  • Generic1 (f :*: g)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (f :+: g)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (Compose f g)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (M1 i c f)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (Tuple5 a b c d)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (f :.: g)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (f :.: g)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Linear_generics · orphan
  • Generic1 (Tuple6 a b c d e)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (Tuple7 a b c d e f)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (Tuple8 a b c d e f g)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (Tuple9 a b c d e f g h)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (Tuple10 a b c d e f g h i)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (Tuple11 a b c d e f g h i j)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (Tuple12 a b c d e f g h i j k)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (Tuple13 a b c d e f g h i j k l)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (Tuple14 a b c d e f g h i j k l m)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (Tuple15 a b c d e f g h i j k l m n)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Generic1 (Code m)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Template_haskell · orphan
familytype family Rep a :: Type -> Type
#
Instances140Rep, …
familytype family Rep1 (f :: k -> Type) :: k -> Type
#
Instances72Rep1, …
valueunMP1 :: MP1 m f a %n -> f a
#

Extract the value from an MP1.

datadata Associativity
#

Datatype to represent the associativity of a constructor

Instances18Bounded, Enum, Eq, Data, Ord, Read, …
classclass Constructor (c :: k) where
#

Class for datatypes that represent data constructors

Methods

Instances1Constructor
classclass Datatype (d :: k) where
#

Class for datatypes that represent datatypes

Methods

  • datatypeName :: t d f a -> [Char]

    The name of the datatype (unqualified)

  • moduleName :: t d f a -> [Char]

    The fully-qualified name of the module where the type is declared

  • packageName :: t d f a -> [Char]

    The package name of the module where the type is declared

  • isNewtype :: t d f a -> Bool

    Marks if the datatype is actually a newtype

Instances1Datatype
datadata DecidedStrictness
#

The strictness that GHC infers for a field during compilation. Whereas there are nine different combinations of SourceUnpackedness and SourceStrictness, the strictness that GHC decides will ultimately be one of lazy, strict, or unpacked. What GHC decides is affected both by what the user writes in the source code and by GHC flags. As an example, consider this data type:

data E = ExampleConstructor {-# UNPACK #-} !Int !Int Int
Instances18Bounded, Enum, Eq, Data, Ord, Read, …
datadata Fixity
#

Datatype to represent the fixity of a constructor. An infix | declaration directly corresponds to an application of Infix.

Instances9Eq, Data, Ord, Read, Show, Generic, …
datadata FixityI
#

This variant of Fixity appears at the type level.

Instances5SingKind, SingI, DemoteRep, Sing
  • SingKind FixityIDefined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • SingI 'PrefixIDefined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • (SingI a, KnownNat n) => SingI ('InfixI a n)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • type DemoteRep FixityI = FixityDefined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • data SingDefined in ghc-internal-9.1003.0 · GHC.Internal.Generics
newtypenewtype Generically1 (f :: k -> Type) (a :: k) where
#

A type whose instances are defined generically, using the Generic1 representation. Generically1 is a higher-kinded version of Generically that uses Generic.

Generic instances can be derived for type constructors via Generically1 F using -XDerivingVia.

{-# LANGUAGE DeriveGeneric      #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE DerivingVia        #-}

import GHC.Generics (Generic)

data V4 a = V4 a a a a
  deriving stock (Functor, Generic1)

  deriving Applicative
  via Generically1 V4

This corresponds to Applicative instances defined by pointwise lifting:

instance Applicative V4 where
  pure :: a -> V4 a
  pure a = V4 a a a a

  liftA2 :: (a -> b -> c) -> (V4 a -> V4 b -> V4 c)
  liftA2 (·) (V4 a1 b1 c1 d1) (V4 a2 b2 c2 d2) =
    V4 (a1 · a2) (b1 · b2) (c1 · c2) (d1 · d2)

Historically this required modifying the type class to include generic method definitions (-XDefaultSignatures) and deriving it with the anyclass strategy (-XDeriveAnyClass). Having a /via type/ like Generically1 decouples the instance from the type class.

Constructors

Instances10Alternative, Eq1, Ord1, Functor, Applicative, Eq, …
newtypenewtype K1 i c (p :: k)
#

Constants, additional parameters and recursion of kind *

Constructors

Instances49GNFData, RecursivelyShrink, GCoArbitrary, GFunction, GBinaryGet, GBinaryPut, …
  • Generic1 (K1 i c)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • NFData a => GNFData arity (K1 i a)Defined in deepseq-1.5.0.0 · Control.DeepSeq
  • Arbitrary a => RecursivelyShrink (K1 i a)Defined in QuickCheck-2.15.0.1 · Test.QuickCheck.Arbitrary
  • CoArbitrary a => GCoArbitrary (K1 i a)Defined in QuickCheck-2.15.0.1 · Test.QuickCheck.Arbitrary
  • Function a => GFunction (K1 i a)Defined in QuickCheck-2.15.0.1 · Test.QuickCheck.Function
  • Binary a => GBinaryGet (K1 i a)Defined in binary-0.8.9.3 · Data.Binary.Generic · orphan
  • Binary a => GBinaryPut (K1 i a)Defined in binary-0.8.9.3 · Data.Binary.Generic · orphan
  • Hashable a => GHashable arity (K1 i a)Defined in hashable-1.4.7.0 · Data.Hashable.Generic.Instances · orphan
  • Generic1 (K1 i c)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • Monoid c => GApplicative s (K1 i c)Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Applicative
  • Bifoldable (K1 i)Defined in base-4.20.2.0 · Data.Bifoldable
  • Bifunctor (K1 i)Defined in base-4.20.2.0 · Data.Bifunctor
  • Bitraversable (K1 i)Defined in base-4.20.2.0 · Data.Bitraversable
  • Functor (K1 i c)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Monoid c => Applicative (K1 i c)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Foldable (K1 i c)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Foldable
  • Traversable (K1 i c)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Traversable
  • Eq c => Eq1 (K1 i c)Defined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Ord c => Ord1 (K1 i c)Defined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Read c => Read1 (K1 i c)Defined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Show c => Show1 (K1 i c)Defined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Contravariant (K1 i c)Defined in base-4.20.2.0 · Data.Functor.Contravariant
  • Uniform a => GUniform (K1 i a)Defined in random-1.2.1.3 · System.Random.Internal
  • Finite a => GFinite (K1 _x a)Defined in random-1.2.1.3 · System.Random.GFinite
  • (Semigroup a, Monoid a) => GMonoid (K1 i a)Defined in semigroups-0.20 · Data.Semigroup.Generic
  • Semigroup a => GSemigroup (K1 i a)Defined in semigroups-0.20 · Data.Semigroup.Generic
  • Unused (K1 i v)Defined in linear-base-0.4.0 · Control.Functor.Linear.Internal.Class
  • Functor (K1 i v)Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Functor
  • Traversable (K1 i v)Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • GTraversable (K1 i c)Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • Consumable c => GConsumable (K1 i c)Defined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Consumable
  • Dupable c => GDupable (K1 i c)Defined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Dupable
  • Movable c => GMovable (K1 i c)Defined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Movable
  • GSubterms (K1 i a) bDefined in QuickCheck-2.15.0.1 · Test.QuickCheck.Arbitrary
  • GSubtermsIncl (K1 i a) aDefined in QuickCheck-2.15.0.1 · Test.QuickCheck.Arbitrary
  • GSubtermsIncl (K1 i a) bDefined in QuickCheck-2.15.0.1 · Test.QuickCheck.Arbitrary
  • Eq c => Eq (K1 i c p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • (Typeable i, Data p, Data c) => Data (K1 i c p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Data
  • Ord c => Ord (K1 i c p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Read c => Read (K1 i c p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Show c => Show (K1 i c p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Generic (K1 i c p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Semigroup c => Semigroup (K1 i c p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Monoid c => Monoid (K1 i c p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Generic (K1 i c p)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • type Rep (K1 i c p) = D1 ('MetaData "K1" "GHC.Internal.Generics" "ghc-internal" 'True) (C1 ('MetaCons "K1" 'PrefixI 'True) (S1 ('MetaSel ('Just "unK1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c)))Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • type Rep1 (K1 i c) = D1 ('MetaData "K1" "GHC.Internal.Generics" "ghc-internal" 'True) (C1 ('MetaCons "K1" 'PrefixI 'True) (S1 ('MetaSel ('Just "unK1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c)))Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • type Rep (K1 i c p) = D1 ('MetaData "K1" "GHC.Internal.Generics" "ghc-internal" 'True) (C1 ('MetaCons "K1" 'PrefixI 'True) (S1 ('MetaSel ('Just "unK1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c)))Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • type Rep1 (K1 i c) = D1 ('MetaData "K1" "GHC.Internal.Generics" "ghc-internal" 'True) (C1 ('MetaCons "K1" 'PrefixI 'True) (S1 ('MetaSel ('Just "unK1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c)))Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
newtypenewtype M1 i (c :: Meta) (f :: k -> Type) (p :: k)
#

Meta-information (constructor names, etc.)

Constructors

Instances52GNFData, RecursivelyShrink, GCoArbitrary, GFunction, GBinaryGet, GBinaryPut, …
  • Generic1 (M1 i c f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • GNFData arity a => GNFData arity (M1 i c a)Defined in deepseq-1.5.0.0 · Control.DeepSeq
  • RecursivelyShrink f => RecursivelyShrink (M1 i c f)Defined in QuickCheck-2.15.0.1 · Test.QuickCheck.Arbitrary
  • GCoArbitrary f => GCoArbitrary (M1 i c f)Defined in QuickCheck-2.15.0.1 · Test.QuickCheck.Arbitrary
  • GFunction f => GFunction (M1 i c f)Defined in QuickCheck-2.15.0.1 · Test.QuickCheck.Function
  • GBinaryGet a => GBinaryGet (M1 i c a)Defined in binary-0.8.9.3 · Data.Binary.Generic · orphan
  • GBinaryPut a => GBinaryPut (M1 i c a)Defined in binary-0.8.9.3 · Data.Binary.Generic · orphan
  • GHashable arity a => GHashable arity (M1 i c a)Defined in hashable-1.4.7.0 · Data.Hashable.Generic.Instances · orphan
  • Generic1 (M1 i c f)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • GApplicative s f => GApplicative s (M1 i c f)Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Applicative
  • Monad f => Monad (M1 i c f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Functor f => Functor (M1 i c f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • MonadFix f => MonadFix (M1 i c f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.Fix
  • Applicative f => Applicative (M1 i c f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Foldable f => Foldable (M1 i c f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Foldable
  • Traversable f => Traversable (M1 i c f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Traversable
  • Alternative f => Alternative (M1 i c f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • MonadPlus f => MonadPlus (M1 i c f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • MonadZip f => MonadZip (M1 i c f)Defined in base-4.20.2.0 · Control.Monad.Zip
  • Foldable1 f => Foldable1 (M1 i c f)Defined in base-4.20.2.0 · Data.Foldable1
  • Eq1 f => Eq1 (M1 i c f)Defined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Ord1 f => Ord1 (M1 i c f)Defined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Read1 f => Read1 (M1 i c f)Defined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Show1 f => Show1 (M1 i c f)Defined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Contravariant f => Contravariant (M1 i c f)Defined in base-4.20.2.0 · Data.Functor.Contravariant
  • GUniform f => GUniform (M1 i c f)Defined in random-1.2.1.3 · System.Random.Internal
  • GFinite a => GFinite (M1 _x _y a)Defined in random-1.2.1.3 · System.Random.GFinite
  • GMonoid f => GMonoid (M1 i c f)Defined in semigroups-0.20 · Data.Semigroup.Generic
  • GSemigroup f => GSemigroup (M1 i c f)Defined in semigroups-0.20 · Data.Semigroup.Generic
  • Functor f => Functor (M1 j c f)Defined in linear-base-0.4.0 · Control.Functor.Linear.Internal.Class
  • Unused f => Unused (M1 i c f)Defined in linear-base-0.4.0 · Control.Functor.Linear.Internal.Class
  • Functor f => Functor (M1 i c f)Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Functor
  • Traversable f => Traversable (M1 i c f)Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • GTraversable t => GTraversable (M1 i c t)Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • GConsumable f => GConsumable (M1 i t f)Defined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Consumable
  • GDupable f => GDupable (M1 i c f)Defined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Dupable
  • GMovable f => GMovable (M1 i t f)Defined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Movable
  • GSubterms f a => GSubterms (M1 i c f) aDefined in QuickCheck-2.15.0.1 · Test.QuickCheck.Arbitrary
  • GSubtermsIncl f a => GSubtermsIncl (M1 i c f) aDefined in QuickCheck-2.15.0.1 · Test.QuickCheck.Arbitrary
  • Eq (f p) => Eq (M1 i c f p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • (Data p, Data (f p), Typeable c, Typeable i, Typeable f) => Data (M1 i c f p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Data
  • Ord (f p) => Ord (M1 i c f p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Read (f p) => Read (M1 i c f p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Show (f p) => Show (M1 i c f p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Generic (M1 i c f p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Semigroup (f p) => Semigroup (M1 i c f p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Monoid (f p) => Monoid (M1 i c f p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Generic (M1 i c f p)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • type Rep (M1 i c f p) = D1 ('MetaData "M1" "GHC.Internal.Generics" "ghc-internal" 'True) (C1 ('MetaCons "M1" 'PrefixI 'True) (S1 ('MetaSel ('Just "unM1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f p))))Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • type Rep1 (M1 i c f) = D1 ('MetaData "M1" "GHC.Internal.Generics" "ghc-internal" 'True) (C1 ('MetaCons "M1" 'PrefixI 'True) (S1 ('MetaSel ('Just "unM1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 f)))Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • type Rep (M1 i c f p) = D1 ('MetaData "M1" "GHC.Internal.Generics" "ghc-internal" 'True) (C1 ('MetaCons "M1" 'PrefixI 'True) (S1 ('MetaSel ('Just "unM1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f p))))Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • type Rep1 (M1 i c f) = D1 ('MetaData "M1" "GHC.Internal.Generics" "ghc-internal" 'True) (C1 ('MetaCons "M1" 'PrefixI 'True) (S1 ('MetaSel ('Just "unM1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Par1 :.: f)))Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
datadata Meta
#

Datatype to represent metadata associated with a datatype (MetaData), constructor (MetaCons), or field selector (MetaSel).

  • In MetaData n m p nt, n is the datatype's name, m is the module in which the datatype is defined, p is the package in which the datatype is defined, and nt is 'True if the datatype is a newtype.

  • In MetaCons n f s, n is the constructor's name, f is its fixity, and s is 'True if the constructor contains record selectors.

  • In MetaSel mn su ss ds, if the field uses record syntax, then mn is Just the record name. Otherwise, mn is Nothing. su and ss are the field's unpackedness and strictness annotations, and ds is the strictness that GHC infers for the field.

Instances3Constructor, Datatype, Selector
newtypenewtype Par1 p
#

Used for marking occurrences of the parameter

Constructors

Instances34Monad, MonadFix, Applicative, Foldable, MonadZip, Foldable1, …
classclass Selector (s :: k) where
#

Class for datatypes that represent records

Methods

Instances1Selector
  • (SingI mn, SingI su, SingI ss, SingI ds) => Selector ('MetaSel mn su ss ds)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
datadata SourceStrictness
#

The strictness of a field as the user wrote it in the source code. For example, in the following data type:

data E = ExampleConstructor Int ~Int !Int

The fields of ExampleConstructor have NoSourceStrictness, SourceLazy, and SourceStrict, respectively.

Instances18Bounded, Enum, Eq, Data, Ord, Read, …
datadata SourceUnpackedness
#

The unpackedness of a field as the user wrote it in the source code. For example, in the following data type:

data E = ExampleConstructor     Int
           {-# NOUNPACK #-} Int
           {-#   UNPACK #-} Int

The fields of ExampleConstructor have NoSourceUnpackedness, SourceNoUnpack, and SourceUnpack, respectively.

Instances18Bounded, Enum, Eq, Data, Ord, Read, …
datadata U1 (p :: k)
#

Unit: used for constructors without arguments

Instances49GNFData, RecursivelyShrink, GCoArbitrary, GFunction, GBinaryGet, GBinaryPut, …
  • Generic1 U1Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • GNFData arity U1Defined in deepseq-1.5.0.0 · Control.DeepSeq
  • RecursivelyShrink U1Defined in QuickCheck-2.15.0.1 · Test.QuickCheck.Arbitrary
  • GCoArbitrary U1Defined in QuickCheck-2.15.0.1 · Test.QuickCheck.Arbitrary
  • GFunction U1Defined in QuickCheck-2.15.0.1 · Test.QuickCheck.Function
  • GBinaryGet U1Defined in binary-0.8.9.3 · Data.Binary.Generic · orphan
  • GBinaryPut U1Defined in binary-0.8.9.3 · Data.Binary.Generic · orphan
  • GHashable arity U1Defined in hashable-1.4.7.0 · Data.Hashable.Generic.Instances · orphan
  • Generic1 U1Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • GApplicative s U1Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Applicative
  • Monad U1Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Functor U1Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Applicative U1Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Foldable U1Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Foldable
  • Traversable U1Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Traversable
  • Alternative U1Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • MonadPlus U1Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • MonadZip U1Defined in base-4.20.2.0 · Control.Monad.Zip
  • Eq1 U1Defined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Ord1 U1Defined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Read1 U1Defined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Show1 U1Defined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Contravariant U1Defined in base-4.20.2.0 · Data.Functor.Contravariant
  • GUniform U1Defined in random-1.2.1.3 · System.Random.Internal
  • GFinite U1Defined in random-1.2.1.3 · System.Random.GFinite
  • GMonoid U1Defined in semigroups-0.20 · Data.Semigroup.Generic
  • GSemigroup U1Defined in semigroups-0.20 · Data.Semigroup.Generic
  • Unused U1Defined in linear-base-0.4.0 · Control.Functor.Linear.Internal.Class
  • Functor U1Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Functor
  • Traversable U1Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • GTraversable U1Defined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • GConsumable U1Defined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Consumable
  • GDupable U1Defined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Dupable
  • GMovable U1Defined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Movable
  • GSubterms U1 aDefined in QuickCheck-2.15.0.1 · Test.QuickCheck.Arbitrary
  • GSubtermsIncl U1 aDefined in QuickCheck-2.15.0.1 · Test.QuickCheck.Arbitrary
  • Eq (U1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Data p => Data (U1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Data
  • Ord (U1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Read (U1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Show (U1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Generic (U1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Semigroup (U1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Monoid (U1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • Generic (U1 p)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • type Rep (U1 p) = D1 ('MetaData "U1" "GHC.Internal.Generics" "ghc-internal" 'False) (C1 ('MetaCons "U1" 'PrefixI 'False) U1)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • type Rep1 U1 = D1 ('MetaData "U1" "GHC.Internal.Generics" "ghc-internal" 'False) (C1 ('MetaCons "U1" 'PrefixI 'False) U1)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics
  • type Rep (U1 p) = D1 ('MetaData "U1" "GHC.Internal.Generics" "ghc-internal" 'False) (C1 ('MetaCons "U1" 'PrefixI 'False) U1)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
  • type Rep1 U1 = D1 ('MetaData "U1" "GHC.Internal.Generics" "ghc-internal" 'False) (C1 ('MetaCons "U1" 'PrefixI 'False) U1)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan
typetype UAddr = URec (Ptr ())
#

Type synonym for URec Addr#

Instances7Eq1, Ord1, Show1, Functor, Traversable, GTraversable, …
  • Eq1 UAddrDefined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Ord1 UAddrDefined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Show1 UAddrDefined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Functor UAddrDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Functor
  • Traversable UAddrDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • GTraversable UAddrDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • Show (UAddr p)Defined in base-orphans-0.9.3 · Data.Orphans · orphan
data familydata family URec a (p :: k)
#

Constants of unlifted kinds

Instances91GNFData, Generic1, GApplicative, Foldable, Traversable, Functor, …
typetype UChar = URec Char
#

Type synonym for URec Char#

Instances9Eq1, Ord1, Show1, Functor, Traversable, GTraversable, …
  • Eq1 UCharDefined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Ord1 UCharDefined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Show1 UCharDefined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Functor UCharDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Functor
  • Traversable UCharDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • GTraversable UCharDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • GConsumable UCharDefined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Consumable
  • GDupable UCharDefined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Dupable
  • GMovable UCharDefined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Movable
typetype UDouble = URec Double
#

Type synonym for URec Double#

Instances9Eq1, Ord1, Show1, Functor, Traversable, GTraversable, …
  • Eq1 UDoubleDefined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Ord1 UDoubleDefined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Show1 UDoubleDefined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Functor UDoubleDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Functor
  • Traversable UDoubleDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • GTraversable UDoubleDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • GConsumable UDoubleDefined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Consumable
  • GDupable UDoubleDefined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Dupable
  • GMovable UDoubleDefined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Movable
typetype UFloat = URec Float
#

Type synonym for URec Float#

Instances9Eq1, Ord1, Show1, Functor, Traversable, GTraversable, …
  • Eq1 UFloatDefined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Ord1 UFloatDefined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Show1 UFloatDefined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Functor UFloatDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Functor
  • Traversable UFloatDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • GTraversable UFloatDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • GConsumable UFloatDefined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Consumable
  • GDupable UFloatDefined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Dupable
  • GMovable UFloatDefined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Movable
typetype UInt = URec Int
#

Type synonym for URec Int#

Instances9Eq1, Ord1, Show1, Functor, Traversable, GTraversable, …
  • Eq1 UIntDefined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Ord1 UIntDefined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Show1 UIntDefined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Functor UIntDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Functor
  • Traversable UIntDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • GTraversable UIntDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • GConsumable UIntDefined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Consumable
  • GDupable UIntDefined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Dupable
  • GMovable UIntDefined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Movable
typetype UWord = URec Word
#

Type synonym for URec Word#

Instances9Eq1, Ord1, Show1, Functor, Traversable, GTraversable, …
  • Eq1 UWordDefined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Ord1 UWordDefined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Show1 UWordDefined in base-orphans-0.9.3 · Data.Orphans · orphan
  • Functor UWordDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Functor
  • Traversable UWordDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • GTraversable UWordDefined in linear-base-0.4.0 · Data.Functor.Linear.Internal.Traversable
  • GConsumable UWordDefined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Consumable
  • GDupable UWordDefined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Dupable
  • GMovable UWordDefined in linear-base-0.4.0 · Data.Unrestricted.Linear.Internal.Movable
typetype Rec0 = K1 R
#

Type synonym for encoding recursion (of kind Type)

datadata C
#

Tag for M1: constructor

datadata D
#

Tag for M1: datatype

datadata R
#

Tag for K1: recursion (of kind Type)