|
Generics.MultiRec.Base | Portability | non-portable | Stability | experimental | Maintainer | generics@haskell.org |
|
|
|
|
|
Description |
This module is the base of the multirec library. It defines the view of a
family of datatypes: All the datatypes of the family are represented as
indexed functors that are built up from the structure types defined in this
module. Furthermore, in order to use the library for a family, conversion
functions have to be defined between the original datatypes and their
representation. The type class that holds these conversion functions are
also defined here.
|
|
Synopsis |
|
|
|
|
Structure types
|
|
|
Represents recursive positions. The first argument indicates
which type to recurse on.
| Constructors | | Instances | |
|
|
|
Represents constant types that do not belong to the family.
| Constructors | | Instances | |
|
|
|
Represents constructors without fields.
| Constructors | | Instances | |
|
|
|
Represents sums (choices between constructors).
| Constructors | | Instances | |
|
|
|
Represents products (sequences of fields of a constructor).
| Constructors | | Instances | |
|
|
|
Is used to indicate the type that a
particular constructor injects to.
| Constructors | Tag :: f r ix -> (f :>: ix) r ix | |
| Instances | |
|
|
|
Destructor for '(:>:)'.
|
|
|
Represents constructors.
| Constructors | C :: f r ix -> C c f r ix | |
| Instances | |
|
|
|
Destructor for C.
|
|
Constructor information
|
|
module Generics.MultiRec.Constructor |
|
Unlifted variants
|
|
|
Unlifted version of I.
| Constructors | | Instances | |
|
|
|
Unlifted version of K.
| Constructors | | Instances | |
|
|
Indexed families
|
|
type family PF phi :: (* -> *) -> * -> * | Source |
|
Type family describing the pattern functor of a family.
|
|
|
|
Class for the members of a family.
| | Methods | |
|
|
|
Class that contains the shallow conversion functions for a family.
| | Methods | |
|
|
|
For backwards-compatibility: a synonym for proof.
|
|
Equality for indexed families
|
|
module Generics.MultiRec.TEq |
|
|
Semi-decidable equality for types of a family.
| | Methods | |
|
|
Produced by Haddock version 2.4.2 |