Modulegenerics-sop-0.5.1.4Haskell2010
Generics.SOP.Universe
Codes and interpretations
- 7 types
- 2 classes
- 8 values
- Packagegenerics-sop-0.5.1.4
- Exports17
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceUniverse.hs
The class of representable datatypes.
The SOP approach to generic programming is based on viewing datatypes as a representation (Rep) built from the sum of products of its components. The components of a datatype are specified using the Code type family.
The isomorphism between the original Haskell datatype and its representation is witnessed by the methods of this class, from and to. So for instances of this class, the following laws should (in general) hold:
to . from === id :: a -> a
from . to === id :: Rep a -> Rep a
You typically don't define instances of this class by hand, but rather derive the class instance automatically.
Option 1: Derive via the built-in GHC-generics. For this, you
need to use the DeriveGeneric extension to first derive an
instance of the Generic class from module GHC.Generics.
With this, you can then give an empty instance for Generic, and
the default definitions will just work. The pattern looks as
follows:
import qualified GHC.Generics as GHC
import Generics.SOP
...
data T = ... deriving (GHC.Generic, ...)
instance Generic T -- empty
instance HasDatatypeInfo T -- empty, if you want/need metadata
Option 2: Derive via Template Haskell. For this, you need to
enable the TemplateHaskell extension. You can then use
deriveGeneric from module Generics.SOP.TH
to have the instance generated for you. The pattern looks as
follows:
import Generics.SOP
import Generics.SOP.TH
...
data T = ...
deriveGeneric ''T -- derives HasDatatypeInfo as well
Tradeoffs: Whether to use Option 1 or 2 is mainly a matter of personal taste. The version based on Template Haskell probably has less run-time overhead.
Non-standard instances: It is possible to give Generic instances manually that deviate from the standard scheme, as long as at least
to . from === id :: a -> a
still holds.
Associated types
type family Code a :: [[Type]]The code of a datatype.
This is a list of lists of its components. The outer list contains one element per constructor. The inner list contains one element per constructor argument (field).
Example: The datatype
data Tree = Leaf Int | Node Tree Treeis supposed to have the following code:
type instance Code (Tree a) = '[ '[ Int ] , '[ Tree, Tree ] ]
Instances193Generic, …
Generic E0Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric E1Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric E12Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric E2Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric E3Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric E6Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric E9Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric FieldFormatDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric FormatAdjustmentDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric FormatParseDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric FormatSignDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric VoidDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric ByteOrderDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric BlockReasonDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric ThreadStatusDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric NestedAtomicallyDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric NoMethodErrorDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric NonTerminationDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric PatternMatchFailDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric RecConErrorDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric RecSelErrorDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric RecUpdErrorDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric TypeErrorDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric ConstrRepDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric DataRepDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric FixityDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric AllDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric AnyDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric VersionDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric ErrorCallDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric ArithExceptionDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric LocationDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric SrcLocDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric FingerprintDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric FFFormatDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric ErrnoDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CCharDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CClockDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CDoubleDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CFloatDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CIntDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CIntMaxDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CIntPtrDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CLLongDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CLongDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CPtrdiffDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CSCharDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CSUSecondsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CShortDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CSigAtomicDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CSizeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CTimeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CUCharDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CUIntDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CUIntMaxDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CUIntPtrDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CULLongDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CULongDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CUSecondsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CUShortDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CWcharDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric AssociativityDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric DDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric DecidedStrictnessDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric FixityDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric RDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric SDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric SourceStrictnessDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric SourceUnpackednessDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric MaskingStateDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric BufferStateDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric IODeviceTypeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric SeekModeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CodingFailureModeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CodingProgressDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric AllocationLimitExceededDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric ArrayExceptionDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric AssertionFailedDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric AsyncExceptionDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric BlockedIndefinitelyOnMVarDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric BlockedIndefinitelyOnSTMDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric DeadlockDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric ExitCodeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric FixIOExceptionDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric IOErrorTypeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric IOExceptionDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric HandlePosnDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric LockModeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric BufferModeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric NewlineDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric NewlineModeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric IOModeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CCFlagsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric ConcFlagsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric DebugFlagsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric DoCostCentresDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric DoHeapProfileDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric DoTraceDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric GCFlagsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric GiveGCStatsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric MiscFlagsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric ParFlagsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric ProfFlagsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric RTSFlagsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric TickyFlagsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric TraceFlagsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric CallStackDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric SrcLocDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric StaticPtrInfoDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric GCDetailsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric RTSStatsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric LexemeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric NumberDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric GeneralCategoryDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric BoolDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric OrderingDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric RuntimeRepDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric VecCountDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric VecElemDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric ()Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (Complex a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (First a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (Last a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (Max a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (Min a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (WrappedMonoid m)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (ArgDescr a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (ArgOrder a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (OptDescr a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (NonEmpty a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (Identity a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (First a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (Last a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (Down a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (Dual a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (Endo a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (Product a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (Sum a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (Par1 p)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (Buffer e)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (Maybe a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (I a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric [a]Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (Fixed a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (Arg a b)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (Either a b)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (Proxy t)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (U1 p)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (V1 p)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (Const a b)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (Alt f a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (BufferCodec from to state)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (K a b)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (Product f g a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (Sum f g a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (K1 i c p)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric ((:*:) f g p)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric ((:+:) f g p)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric ((-.->) f g a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (Compose f g a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (M1 i c f p)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric ((:.:) f g p)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric ((:.:) f g p)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g, h)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g, h, i)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g, h, i, j)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g, h, i, j, k)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g, h, i, j, k, l)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g, h, i, j, k, l, m)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g, h, i, j, k, l, m, n)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanGeneric (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphan
A class of datatypes that have associated metadata.
It is possible to use the sum-of-products approach to generic programming without metadata. If you need metadata in a function, an additional constraint on this class is in order.
You typically don't define instances of this class by hand, but rather derive the class instance automatically. See the documentation of Generic for the options.
Associated types
type family DatatypeInfoOf a :: DatatypeInfoType-level datatype info
Methods
datatypeInfo :: proxy a -> DatatypeInfo (Code a)Term-level datatype info; by default, the term-level datatype info is produced from the type-level info.
Instances193HasDatatypeInfo, …
HasDatatypeInfo E0Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo E1Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo E12Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo E2Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo E3Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo E6Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo E9Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo FieldFormatDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo FormatAdjustmentDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo FormatParseDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo FormatSignDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo VoidDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo ByteOrderDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo BlockReasonDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo ThreadStatusDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo NestedAtomicallyDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo NoMethodErrorDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo NonTerminationDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo PatternMatchFailDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo RecConErrorDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo RecSelErrorDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo RecUpdErrorDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo TypeErrorDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo ConstrRepDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo DataRepDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo FixityDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo AllDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo AnyDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo VersionDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo ErrorCallDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo ArithExceptionDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo LocationDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo SrcLocDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo FingerprintDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo FFFormatDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo ErrnoDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CCharDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CClockDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CDoubleDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CFloatDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CIntDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CIntMaxDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CIntPtrDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CLLongDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CLongDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CPtrdiffDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CSCharDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CSUSecondsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CShortDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CSigAtomicDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CSizeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CTimeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CUCharDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CUIntDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CUIntMaxDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CUIntPtrDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CULLongDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CULongDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CUSecondsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CUShortDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CWcharDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo AssociativityDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo DDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo DecidedStrictnessDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo FixityDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo RDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo SDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo SourceStrictnessDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo SourceUnpackednessDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo MaskingStateDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo BufferStateDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo IODeviceTypeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo SeekModeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CodingFailureModeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CodingProgressDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo AllocationLimitExceededDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo ArrayExceptionDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo AssertionFailedDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo AsyncExceptionDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo BlockedIndefinitelyOnMVarDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo BlockedIndefinitelyOnSTMDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo DeadlockDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo ExitCodeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo FixIOExceptionDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo IOErrorTypeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo IOExceptionDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo HandlePosnDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo LockModeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo BufferModeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo NewlineDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo NewlineModeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo IOModeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CCFlagsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo ConcFlagsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo DebugFlagsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo DoCostCentresDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo DoHeapProfileDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo DoTraceDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo GCFlagsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo GiveGCStatsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo MiscFlagsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo ParFlagsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo ProfFlagsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo RTSFlagsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo TickyFlagsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo TraceFlagsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo CallStackDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo SrcLocDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo StaticPtrInfoDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo GCDetailsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo RTSStatsDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo LexemeDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo NumberDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo GeneralCategoryDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo BoolDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo OrderingDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo RuntimeRepDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo VecCountDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo VecElemDefined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo ()Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (Complex a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (First a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (Last a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (Max a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (Min a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (WrappedMonoid m)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (ArgDescr a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (ArgOrder a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (OptDescr a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (NonEmpty a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (Identity a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (First a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (Last a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (Down a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (Dual a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (Endo a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (Product a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (Sum a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (Par1 p)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (Buffer e)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (Maybe a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (I a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo [a]Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (Fixed a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (Arg a b)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (Either a b)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (Proxy t)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (U1 p)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (V1 p)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (Const a b)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (Alt f a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (BufferCodec from to state)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (K a b)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (Product f g a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (Sum f g a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (K1 i c p)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo ((:*:) f g p)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo ((:+:) f g p)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo ((-.->) f g a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (Compose f g a)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (M1 i c f p)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo ((:.:) f g p)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo ((:.:) f g p)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g, h)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g, h, i)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g, h, i, j)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g, h, i, j, k)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g, h, i, j, k, l)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g, h, i, j, k, l, m)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g, h, i, j, k, l, m, n)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphanHasDatatypeInfo (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26, t27, t28, t29)Defined in generics-sop-0.5.1.4 · Generics.SOP.Instances · orphan
Constraint that captures that a datatype is a product type, i.e., a type with a single constructor.
It also gives access to the code for the arguments of that constructor.
Direct access to the part of the code that is relevant for a product type.
Convert from a product type to its product representation.
Convert a product representation to the original type.
Constraint that captures that a datatype is an enumeration type, i.e., none of the constructors have any arguments.
Convert from an enum type to its sum representation.
Convert a sum representation to ihe original type.
Constraint that captures that a datatype is a single-constructor, single-field datatype. This always holds for newtype-defined types, but it can also be true for data-defined types.
The constraint also gives access to the type that is wrapped.
Direct access to the part of the code that is relevant for wrapped types and newtypes.
Convert from a wrapped type to its inner type.
Convert a type to a wrapped type.
Constraint that captures that a datatype is a newtype. This makes use of the fact that newtypes are always coercible to the type they wrap, whereas datatypes are not.
Convert a newtype to its inner type.
This is a specialised synonym for coerce.
Convert a type to a newtype.
This is a specialised synonym for coerce.