GHC.Generics

Introduction

Representing datatypes

Derived and fundamental representation types

Individual fields of constructors: K1

Meta information: M1

Additional generic representation type constructors

Empty datatypes: V1

Constructors without fields: U1

Representation of types with many constructors or many fields

Defining datatype-generic functions

Definition of the generic representation types

Generic instances

The wrapper and generic default

Omitting generic instances

Generic constructor classes

The Generic1 class

Representation of * -> * types

Generic representation types

data V1 p

data U1 p

data Par1 p

data Rec1 f p

data K1 i c p

data M1 i c f p

data (f :+: g) p

data (f :*: g) p

data (f :.: g) p

Synonyms for convenience

type Rec0

type Par0

data R

data P

type D1

type C1

type S1

data D

data C

data S

Meta-information

class Datatype d

class Constructor c

class Selector s

data NoSelector

data Fixity

data Associativity

data Arity

prec

Generic type classes

class Generic a

class Generic1 f