| License | BSD-style (see the file LICENSE) |
|---|---|
| Maintainer | sjoerd@w3future.com |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | Safe |
| Language | Haskell98 |
Generics.OneLiner.Classes
Description
Synopsis
- class (Profunctor p, GenericUnitProfunctor p, GenericProductProfunctor p) => GenericRecordProfunctor p
- class (GenericRecordProfunctor p, GenericSumProfunctor p) => GenericNonEmptyProfunctor p
- class (GenericNonEmptyProfunctor p, GenericEmptyProfunctor p) => GenericProfunctor p
- class Profunctor p => GenericUnitProfunctor p where
- class Profunctor p => GenericProductProfunctor p where
- class Profunctor p => GenericSumProfunctor p where
- class Profunctor p => GenericEmptyProfunctor p where
- newtype Zip f a b = Zip {
- runZip :: a -> a -> f b
- absurd :: V1 a -> b
- e1 :: (f a -> b) -> (g a -> b) -> (f :+: g) a -> b
- fst1 :: (f :*: g) a -> f a
- snd1 :: (f :*: g) a -> g a
Documentation
class (Profunctor p, GenericUnitProfunctor p, GenericProductProfunctor p) => GenericRecordProfunctor p #
A generic function using a GenericRecordProfunctor works on any data type
with exactly one constructor, a.k.a. records,
with multiple fields (mult) or no fields (unit).
GenericRecordProfunctor is similar to ProductProfuctor from the
product-profunctor package, but using types from GHC.Generics.
Instances
| (Profunctor p, GenericUnitProfunctor p, GenericProductProfunctor p) => GenericRecordProfunctor p # | |
Defined in Generics.OneLiner.Classes | |
class (GenericRecordProfunctor p, GenericSumProfunctor p) => GenericNonEmptyProfunctor p #
A generic function using a GenericNonEmptyProfunctor works on any data
type with at least one constructor.
Instances
| (GenericRecordProfunctor p, GenericSumProfunctor p) => GenericNonEmptyProfunctor p # | |
Defined in Generics.OneLiner.Classes | |
class (GenericNonEmptyProfunctor p, GenericEmptyProfunctor p) => GenericProfunctor p #
A generic function using a GenericProfunctor works on any
algebraic data type, including those with no constructors and constants.
Instances
| (GenericNonEmptyProfunctor p, GenericEmptyProfunctor p) => GenericProfunctor p # | |
Defined in Generics.OneLiner.Classes | |
class Profunctor p => GenericUnitProfunctor p where #
Instances
| Applicative f => GenericUnitProfunctor (Star f) # | |
| Functor f => GenericUnitProfunctor (Costar f) # | |
| GenericUnitProfunctor (Tagged :: Type -> Type -> Type) # | |
| Applicative f => GenericUnitProfunctor (Zip f) # | |
| GenericUnitProfunctor (Ctor :: Type -> Type -> Type) # | |
| GenericUnitProfunctor ((->) :: Type -> Type -> Type) # | |
Defined in Generics.OneLiner.Classes | |
| Applicative f => GenericUnitProfunctor (Joker f :: Type -> Type -> Type) # | |
| Divisible f => GenericUnitProfunctor (Clown f :: Type -> Type -> Type) # | |
| (GenericUnitProfunctor p, GenericUnitProfunctor q) => GenericUnitProfunctor (Product p q) # | |
| (Applicative f, GenericUnitProfunctor p) => GenericUnitProfunctor (Tannen f p) # | |
| (Functor f, Applicative g, Profunctor p, GenericUnitProfunctor p) => GenericUnitProfunctor (Biff p f g) # | |
class Profunctor p => GenericProductProfunctor p where #
Instances
| Applicative f => GenericProductProfunctor (Star f) # | |
| Functor f => GenericProductProfunctor (Costar f) # | |
| GenericProductProfunctor (Tagged :: Type -> Type -> Type) # | |
| Applicative f => GenericProductProfunctor (Zip f) # | |
| GenericProductProfunctor (Ctor :: Type -> Type -> Type) # | |
| GenericProductProfunctor ((->) :: Type -> Type -> Type) # | |
Defined in Generics.OneLiner.Classes | |
| Applicative f => GenericProductProfunctor (Joker f :: Type -> Type -> Type) # | |
| Divisible f => GenericProductProfunctor (Clown f :: Type -> Type -> Type) # | |
| (GenericProductProfunctor p, GenericProductProfunctor q) => GenericProductProfunctor (Product p q) # | |
| (Applicative f, GenericProductProfunctor p) => GenericProductProfunctor (Tannen f p) # | |
| (Functor f, Applicative g, Profunctor p, GenericProductProfunctor p) => GenericProductProfunctor (Biff p f g) # | |
class Profunctor p => GenericSumProfunctor p where #
Instances
| Applicative f => GenericSumProfunctor (Star f) # | |
| Alternative f => GenericSumProfunctor (Zip f) # | |
| GenericSumProfunctor (Ctor :: Type -> Type -> Type) # | |
| GenericSumProfunctor ((->) :: Type -> Type -> Type) # | |
Defined in Generics.OneLiner.Classes | |
| Alternative f => GenericSumProfunctor (Joker f :: Type -> Type -> Type) # | |
| Decidable f => GenericSumProfunctor (Clown f :: Type -> Type -> Type) # | |
| (GenericSumProfunctor p, GenericSumProfunctor q) => GenericSumProfunctor (Product p q) # | |
| (Applicative f, GenericSumProfunctor p) => GenericSumProfunctor (Tannen f p) # | |
class Profunctor p => GenericEmptyProfunctor p where #
Instances
| Applicative f => GenericEmptyProfunctor (Star f) # | |
| Alternative f => GenericEmptyProfunctor (Zip f) # | |
| GenericEmptyProfunctor (Ctor :: Type -> Type -> Type) # | |
| GenericEmptyProfunctor ((->) :: Type -> Type -> Type) # | |
| Alternative f => GenericEmptyProfunctor (Joker f :: Type -> Type -> Type) # | |
| Decidable f => GenericEmptyProfunctor (Clown f :: Type -> Type -> Type) # | |
| (GenericEmptyProfunctor p, GenericEmptyProfunctor q) => GenericEmptyProfunctor (Product p q) # | |
| (Applicative f, GenericEmptyProfunctor p) => GenericEmptyProfunctor (Tannen f p) # | |
Instances
| Functor f => Profunctor (Zip f) # | |
Defined in Generics.OneLiner.Classes | |
| Alternative f => GenericEmptyProfunctor (Zip f) # | |
| Alternative f => GenericSumProfunctor (Zip f) # | |
| Applicative f => GenericProductProfunctor (Zip f) # | |
| Applicative f => GenericUnitProfunctor (Zip f) # | |