| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Data.Vinyl.Types
- data Rec a b :: (u -> *) -> [u] -> * where
- data CoRec :: (u -> *) -> [u] -> * where
- CoRecHere :: !(f r) -> CoRec f (r : rs)
- CoRecThere :: !(CoRec f rs) -> CoRec f (r : rs)
- newtype Flap a f = Flap {
- getFlap :: f a
- newtype FunctorRec fs a = FunctorRec {
- getFunctorRec :: Rec (Flap a) fs
- newtype FunctorCoRec fs a = FunctorCoRec {
- getFunctorCoRec :: CoRec (Flap a) fs
Documentation
data Rec a b :: (u -> *) -> [u] -> * where
A record is parameterized by a universe u, an interpretation f and a
list of rows rs. The labels or indices of the record are given by
inhabitants of the kind u; the type of values at any label r :: u is
given by its interpretation f r :: *.
Instances
| Eq (Rec k f ([] k)) | |
| (Eq (f r), Eq (Rec k f rs)) => Eq (Rec k f ((:) k r rs)) | |
| Ord (Rec k f ([] k)) | |
| (Ord (f r), Ord (Rec k f rs)) => Ord (Rec k f ((:) k r rs)) | |
| RecAll k f rs Show => Show (Rec k f rs) | Records may be shown insofar as their points may be shown.
|
| Storable (Rec k f ([] k)) | |
| (Storable (f r), Storable (Rec k f rs)) => Storable (Rec k f ((:) k r rs)) | |
| Monoid (Rec k f ([] k)) | |
| (Monoid (f r), Monoid (Rec k f rs)) => Monoid (Rec k f ((:) k r rs)) |
data CoRec :: (u -> *) -> [u] -> * where Source
CoRec is a generalized coproduct. The value it holds
is the interpretation function f applied to exactly one
of the types in the list. While a Rec can be thought of
a nesting of tuples, a CoRec can be thought of as a
nesting of Eithers.
Constructors
| CoRecHere :: !(f r) -> CoRec f (r : rs) | |
| CoRecThere :: !(CoRec f rs) -> CoRec f (r : rs) |
Instances
| (Show (CoRec k f ((:) k s rs)), Show (f r)) => Show (CoRec k f ((:) k r ((:) k s rs))) Source | |
| Show (f r) => Show (CoRec k f ((:) k r ([] k))) Source | |
| (Monoid (CoRec k f ((:) k s rs)), Monoid (f r)) => Monoid (CoRec k f ((:) k r ((:) k s rs))) Source | |
| Monoid (f r) => Monoid (CoRec k f ((:) k r ([] k))) Source |
newtype FunctorRec fs a Source
Constructors
| FunctorRec | |
Fields
| |
Instances
| (Functor r, Functor (FunctorRec * rs)) => Functor (FunctorRec * ((:) (* -> *) r rs)) Source | |
| Functor (FunctorRec * ([] (* -> *))) Source | |
| (Applicative r, Applicative (FunctorRec * rs)) => Applicative (FunctorRec * ((:) (* -> *) r rs)) Source | |
| Applicative (FunctorRec * ([] (* -> *))) Source | |
| (Contravariant r, Contravariant (FunctorRec * rs)) => Contravariant (FunctorRec * ((:) (* -> *) r rs)) Source | |
| Contravariant (FunctorRec * ([] (* -> *))) Source | |
| RecAll (k -> *) (Flap k a) fs Show => Show (FunctorRec k fs a) Source |
newtype FunctorCoRec fs a Source
Constructors
| FunctorCoRec | |
Fields
| |
Instances
| (Functor f, Functor (FunctorCoRec * ((:) (* -> *) g fs))) => Functor (FunctorCoRec * ((:) (* -> *) f ((:) (* -> *) g fs))) Source | |
| Functor r => Functor (FunctorCoRec * ((:) (* -> *) r ([] (* -> *)))) Source | |
| (Contravariant f, Contravariant (FunctorCoRec * ((:) (* -> *) g fs))) => Contravariant (FunctorCoRec * ((:) (* -> *) f ((:) (* -> *) g fs))) Source | |
| Contravariant r => Contravariant (FunctorCoRec * ((:) (* -> *) r ([] (* -> *)))) Source | |
| (Show (CoRec (k -> *) (Flap k r) ((:) (k -> *) g hs)), Show (f r)) => Show (FunctorCoRec k ((:) (k -> *) f ((:) (k -> *) g hs)) r) Source | |
| Show (f r) => Show (FunctorCoRec k ((:) (k -> *) f ([] (k -> *))) r) Source |