| Copyright | (C) 2019 Csongor Kiss |
|---|---|
| License | BSD3 |
| Maintainer | Csongor Kiss <kiss.csongor.kiss@gmail.com> |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Data.GenericLens.Internal
Contents
Description
The library internals are exposed through this module. Please keep in mind that everything here is subject to change irrespective of the the version numbers.
Synopsis
- type Indexed t = Indexed' t 0
- type family Infer (s :: *) (a' :: *) (b :: *) :: * where ...
- data PTag = PTag
- type family P :: Nat -> k -> PTag -> k
- type family LookupParam (a :: k) (p :: Nat) :: Maybe Nat where ...
- type family ArgAt (t :: k) (n :: Nat) :: j where ...
- type family ArgCount (t :: k) :: Nat where ...
- class UnifyHead (a :: k) (b :: k)
- type family HasTotalFieldP (field :: Symbol) f :: Maybe Type where ...
- type family HasTotalTypeP (typ :: Type) f :: Maybe Type where ...
- type family HasTotalPositionP (pos :: Nat) f :: Maybe Type where ...
- data Pos (p :: Nat)
- type family HasPartialTypeP a f :: Bool where ...
- type family HasCtorP (ctor :: Symbol) f :: Bool where ...
- type family GTypes (rep :: Type -> Type) :: [Type] where ...
- type family CollectTotalType t f :: TypeStat where ...
- type family CollectPartialType t f :: [Symbol] where ...
- type family CollectField t f :: TypeStat where ...
- type family CollectFieldsOrdered (r :: * -> *) :: [Symbol] where ...
- data TypeStat = TypeStat {
- _containsNone :: [Symbol]
- _containsMultiple :: [Symbol]
- _containsOne :: [Symbol]
- type family (xs :: [Symbol]) \\ (ys :: [Symbol]) :: [Symbol] where ...
- type family ShowSymbols (ctors :: [Symbol]) :: ErrorMessage where ...
- type Indexed t = Indexed' t 0
- type family Infer (s :: *) (a' :: *) (b :: *) :: * where ...
- data PTag = PTag
- type family P :: Nat -> k -> PTag -> k
- type family LookupParam (a :: k) (p :: Nat) :: Maybe Nat where ...
- type family ArgAt (t :: k) (n :: Nat) :: j where ...
- type family ArgCount (t :: k) :: Nat where ...
- class UnifyHead (a :: k) (b :: k)
- type family CollectTotalType t f :: TypeStat where ...
- type family CollectPartialType t f :: [Symbol] where ...
- type family CollectField t f :: TypeStat where ...
- type family CollectFieldsOrdered (r :: * -> *) :: [Symbol] where ...
- data TypeStat = TypeStat {
- _containsNone :: [Symbol]
- _containsMultiple :: [Symbol]
- _containsOne :: [Symbol]
- type family (xs :: [Symbol]) \\ (ys :: [Symbol]) :: [Symbol] where ...
- type family HasTotalFieldP (field :: Symbol) f :: Maybe Type where ...
- type family HasTotalTypeP (typ :: Type) f :: Maybe Type where ...
- type family HasTotalPositionP (pos :: Nat) f :: Maybe Type where ...
- data Pos (p :: Nat)
- type family HasPartialTypeP a f :: Bool where ...
- type family HasCtorP (ctor :: Symbol) f :: Bool where ...
- type family GTypes (rep :: Type -> Type) :: [Type] where ...
- data Void
- data Void1 a
- data Void2 a b
- type family NoGeneric (a :: Type) (ctxt :: [ErrorMessage]) :: Constraint where ...
- type family Defined (break :: Type -> Type) (err :: Constraint) (a :: k) :: k where ...
- type family Defined_list (break :: [*]) (err :: Constraint) (a :: k) :: k where ...
- type family QuoteType (typ :: k) :: ErrorMessage where ...
- type family PrettyError (ctxt :: [ErrorMessage]) :: k where ...
- class GAsConstructor (ctor :: Symbol) s t a b | ctor s -> a, ctor t -> b where
- _GCtor :: Prism (s x) (t x) a b
- type GAsConstructor' ctor s a = GAsConstructor ctor s s a a
- class GAsType (f :: Type -> Type) (as :: [Type]) where
- class GAsSubtype (subf :: Type -> Type) (supf :: Type -> Type) where
- _GSub :: Prism' (supf x) (subf x)
- type (<?) x y = Not (y <=? x)
- type family Size f :: Nat where ...
- type family CRep (a :: Type) :: G where ...
- class GLens (pred :: Pred) (s :: Type -> Type) (t :: Type -> Type) a b | s pred -> a, t pred -> b where
- glens :: Lens (s x) (t x) a b
- type GLens' pred s a = GLens pred s s a a
- type TyFun a b = a -> b -> Type
- type family Eval (f :: TyFun a b) (x :: a) :: b
- class GUpcast (sub :: Type -> Type) (sup :: Type -> Type) where
- gupcast :: sub p -> sup p
- class GSmash sub sup where
- gsmash :: sup p -> sub p -> sub p
- class GHasConstraints (c :: * -> * -> Constraint) s t where
- gconstraints :: TraversalC c (s x) (t x)
- class GHasConstraints' (c :: * -> Constraint) (f :: * -> *) where
- gconstraints' :: forall g x. Applicative g => (forall a. c a => a -> g a) -> f x -> g (f x)
- class GIsList (f :: Type -> Type) (g :: Type -> Type) (as :: [Type]) (bs :: [Type]) | f -> as, g -> bs, bs f -> g, as g -> f where
- class IndexList (i :: Nat) as bs a b | i as -> a, i bs -> b, i as b -> bs, i bs a -> as where
- data HList (as :: [Type]) where
- type family (as :: [k]) ++ (bs :: [k]) :: [k] where ...
- class Elem (as :: [(k, Type)]) (key :: k) (i :: Nat) a | as key -> i a
- class ListTuple (tuple :: Type) (as :: [Type]) | as -> tuple where
- type ListToTuple as :: Type
- tupled :: Iso' (HList as) tuple
- tupleToList :: tuple -> HList as
- listToTuple :: HList as -> tuple
- type family TupleToList a where ...
- type family Param :: Nat -> k where ...
- newtype Rec (p :: Type) a x = Rec {}
- class (Coercible (Rep a) (RepN a), Generic a) => GenericN (a :: Type) where
- data Exchange a b s t = Exchange (s -> a) (b -> t)
- type Iso' s a = forall p f. (Profunctor p, Functor f) => p a (f a) -> p s (f s)
- type Iso s t a b = forall p f. (Profunctor p, Functor f) => p a (f b) -> p s (f t)
- fromIso :: Iso s t a b -> Iso b a t s
- withIso :: Iso s t a b -> ((s -> a) -> (b -> t) -> r) -> r
- repIso :: (Generic a, Generic b) => Iso a b (Rep a x) (Rep b x)
- mIso :: Iso (M1 i c f p) (M1 i c g p) (f p) (g p)
- kIso :: Iso (K1 r a p) (K1 r b p) a b
- recIso :: Iso (Rec r a p) (Rec r b p) a b
- prodIso :: Iso ((a :*: b) x) ((a' :*: b') x) (a x, b x) (a' x, b' x)
- iso :: (s -> a) -> (b -> t) -> Iso s t a b
- type Lens' s a = Lens s s a a
- type Lens s t a b = forall f. Functor f => (a -> f b) -> s -> f t
- view :: ((a -> Const a a) -> s -> Const a s) -> s -> a
- (^.) :: s -> ((a -> Const a a) -> s -> Const a s) -> a
- (.~) :: ((a -> Identity b) -> s -> Identity t) -> b -> s -> t
- set :: Lens s t a b -> b -> s -> t
- over :: ((a -> Identity b) -> s -> Identity t) -> (a -> b) -> s -> t
- lens2lensvl :: ALens a b s t -> Lens s t a b
- ravel :: (ALens a b a b -> ALens a b s t) -> Lens s t a b
- lens :: (s -> a) -> ((s, b) -> t) -> Lens s t a b
- type Prism s t a b = forall p f. (Choice p, Applicative f) => p a (f b) -> p s (f t)
- type Prism' s a = Prism s s a a
- (^?) :: s -> ((a -> Const (First a) a) -> s -> Const (First a) s) -> Maybe a
- match :: Prism s t a b -> s -> Either t a
- (#) :: (Tagged b (Identity b) -> Tagged t (Identity t)) -> b -> t
- prism :: (b -> t) -> (s -> Either t a) -> Prism s t a b
- prismRavel :: (Market a b a b -> Market a b s t) -> Prism s t a b
- type APrismVL s t a b = Market a b a (Identity b) -> Market a b s (Identity t)
- withPrism :: APrismVL s t a b -> ((b -> t) -> (s -> Either t a) -> r) -> r
- prism2prismvl :: Market a b s t -> Prism s t a b
- build :: (Tagged b (Identity b) -> Tagged t (Identity t)) -> b -> t
- type Traversal' s a = forall f. Applicative f => (a -> f a) -> s -> f s
- type TraversalC (c :: * -> * -> Constraint) s t = forall f. Applicative f => (forall a b. c a b => a -> f b) -> s -> f t
- type TraversalC' (c :: * -> Constraint) s = forall f. Applicative f => (forall a. c a => a -> f a) -> s -> f s
- type Traversal s t a b = forall f. Applicative f => (a -> f b) -> s -> f t
- type LensLikeC c f s = (forall a. c a => a -> f a) -> s -> f s
- confusing :: Applicative f => Traversal s t a b -> (a -> f b) -> s -> f t
- confusingC :: forall c f s. Applicative f => TraversalC' c s -> LensLikeC c f s
- liftCurriedYoneda :: Applicative f => f a -> Curried (Yoneda f) a
- yap :: Applicative f => Yoneda f (a -> b) -> f a -> Yoneda f b
- newtype Curried f a = Curried {
- runCurried :: forall r. f (a -> r) -> f r
- liftCurried :: Applicative f => f a -> Curried f a
- lowerCurried :: Applicative f => Curried f a -> f a
- newtype Yoneda f a = Yoneda {
- runYoneda :: forall b. (a -> b) -> f b
- liftYoneda :: Functor f => f a -> Yoneda f a
- lowerYoneda :: Yoneda f a -> f a
Documentation
type family LookupParam (a :: k) (p :: Nat) :: Maybe Nat where ... Source #
Equations
| LookupParam (param (n :: Nat)) m = Nothing | |
| LookupParam (a (_ (m :: Nat))) n = IfEq m n (Just 0) (MaybeAdd (LookupParam a n) 1) | |
| LookupParam (a _) n = MaybeAdd (LookupParam a n) 1 | |
| LookupParam a _ = Nothing |
class UnifyHead (a :: k) (b :: k) Source #
Ensure that the types a and b are both applications of the same
constructor. The arguments may be different.
Instances
| a ~ b => UnifyHead (a :: k) (b :: k) Source # | |
Defined in Data.Generics.Internal.Families.Changing | |
| (gb ~ g b, UnifyHead f g) => UnifyHead (f a :: k2) (gb :: k2) Source # | |
Defined in Data.Generics.Internal.Families.Changing | |
type family HasTotalFieldP (field :: Symbol) f :: Maybe Type where ... Source #
Equations
| HasTotalFieldP field (S1 (MetaSel (Just field) _ _ _) (Rec0 t)) = Just t | |
| HasTotalFieldP field (l :*: r) = Alt (HasTotalFieldP field l) (HasTotalFieldP field r) | |
| HasTotalFieldP field (l :+: r) = Both (HasTotalFieldP field l) (HasTotalFieldP field r) | |
| HasTotalFieldP field (S1 _ _) = Nothing | |
| HasTotalFieldP field (C1 _ f) = HasTotalFieldP field f | |
| HasTotalFieldP field (D1 _ f) = HasTotalFieldP field f | |
| HasTotalFieldP field (K1 _ _) = Nothing | |
| HasTotalFieldP field U1 = Nothing | |
| HasTotalFieldP field V1 = Nothing |
type family HasTotalTypeP (typ :: Type) f :: Maybe Type where ... Source #
Equations
| HasTotalTypeP typ (S1 _ (K1 _ typ)) = Just typ | |
| HasTotalTypeP typ (l :*: r) = Alt (HasTotalTypeP typ l) (HasTotalTypeP typ r) | |
| HasTotalTypeP typ (l :+: r) = Both (HasTotalTypeP typ l) (HasTotalTypeP typ r) | |
| HasTotalTypeP typ (S1 _ _) = Nothing | |
| HasTotalTypeP typ (C1 _ f) = HasTotalTypeP typ f | |
| HasTotalTypeP typ (D1 _ f) = HasTotalTypeP typ f | |
| HasTotalTypeP typ (K1 _ _) = Nothing | |
| HasTotalTypeP typ U1 = Nothing | |
| HasTotalTypeP typ V1 = Nothing |
type family HasTotalPositionP (pos :: Nat) f :: Maybe Type where ... Source #
Equations
| HasTotalPositionP pos (S1 _ (K1 (Pos pos) t)) = Just t | |
| HasTotalPositionP pos (l :*: r) = Alt (HasTotalPositionP pos l) (HasTotalPositionP pos r) | |
| HasTotalPositionP pos (l :+: r) = Both (HasTotalPositionP pos l) (HasTotalPositionP pos r) | |
| HasTotalPositionP pos (S1 _ _) = Nothing | |
| HasTotalPositionP pos (C1 _ f) = HasTotalPositionP pos f | |
| HasTotalPositionP pos (D1 _ f) = HasTotalPositionP pos f | |
| HasTotalPositionP pos (K1 _ _) = Nothing | |
| HasTotalPositionP pos U1 = Nothing | |
| HasTotalPositionP pos V1 = Nothing |
type family HasPartialTypeP a f :: Bool where ... Source #
Equations
| HasPartialTypeP t (l :+: r) = HasPartialTypeP t l || HasPartialTypeP t r | |
| HasPartialTypeP t (C1 m f) = t == GTypes f | |
| HasPartialTypeP t (M1 _ _ f) = HasPartialTypeP t f | |
| HasPartialTypeP t _ = False |
type family CollectTotalType t f :: TypeStat where ... Source #
Equations
| CollectTotalType t (C1 (MetaCons ctor _ _) f) = AddToStat ctor (CountType t f) EmptyStat | |
| CollectTotalType t (M1 _ _ r) = CollectTotalType t r | |
| CollectTotalType t (l :+: r) = MergeStat (CollectTotalType t l) (CollectTotalType t r) |
type family CollectPartialType t f :: [Symbol] where ... Source #
Equations
| CollectPartialType t (l :+: r) = CollectPartialType t l ++ CollectPartialType t r | |
| CollectPartialType t (C1 (MetaCons ctor _ _) f) = If (t == GTypes f) '[ctor] '[] | |
| CollectPartialType t (D1 _ f) = CollectPartialType t f |
type family CollectField t f :: TypeStat where ... Source #
Equations
| CollectField t (C1 (MetaCons ctor _ _) f) = AddToStat ctor (CountField t f) EmptyStat | |
| CollectField t (M1 _ _ r) = CollectField t r | |
| CollectField t (l :+: r) = MergeStat (CollectField t l) (CollectField t r) |
type family CollectFieldsOrdered (r :: * -> *) :: [Symbol] where ... Source #
Equations
| CollectFieldsOrdered (l :*: r) = Merge (CollectFieldsOrdered l) (CollectFieldsOrdered r) | |
| CollectFieldsOrdered (S1 (MetaSel (Just name) _ _ _) _) = '[name] | |
| CollectFieldsOrdered (M1 _ m a) = CollectFieldsOrdered a | |
| CollectFieldsOrdered _ = '[] |
Constructors
| TypeStat | |
Fields
| |
type family ShowSymbols (ctors :: [Symbol]) :: ErrorMessage where ... Source #
Equations
| ShowSymbols '[] = Text "" | |
| ShowSymbols (c ': cs) = (Text "\8226 " :<>: Text c) :$$: ShowSymbols cs |
type family LookupParam (a :: k) (p :: Nat) :: Maybe Nat where ... Source #
Equations
| LookupParam (param (n :: Nat)) m = Nothing | |
| LookupParam (a (_ (m :: Nat))) n = IfEq m n (Just 0) (MaybeAdd (LookupParam a n) 1) | |
| LookupParam (a _) n = MaybeAdd (LookupParam a n) 1 | |
| LookupParam a _ = Nothing |
class UnifyHead (a :: k) (b :: k) Source #
Ensure that the types a and b are both applications of the same
constructor. The arguments may be different.
Instances
| a ~ b => UnifyHead (a :: k) (b :: k) Source # | |
Defined in Data.Generics.Internal.Families.Changing | |
| (gb ~ g b, UnifyHead f g) => UnifyHead (f a :: k2) (gb :: k2) Source # | |
Defined in Data.Generics.Internal.Families.Changing | |
type family CollectTotalType t f :: TypeStat where ... Source #
Equations
| CollectTotalType t (C1 (MetaCons ctor _ _) f) = AddToStat ctor (CountType t f) EmptyStat | |
| CollectTotalType t (M1 _ _ r) = CollectTotalType t r | |
| CollectTotalType t (l :+: r) = MergeStat (CollectTotalType t l) (CollectTotalType t r) |
type family CollectPartialType t f :: [Symbol] where ... Source #
Equations
| CollectPartialType t (l :+: r) = CollectPartialType t l ++ CollectPartialType t r | |
| CollectPartialType t (C1 (MetaCons ctor _ _) f) = If (t == GTypes f) '[ctor] '[] | |
| CollectPartialType t (D1 _ f) = CollectPartialType t f |
type family CollectField t f :: TypeStat where ... Source #
Equations
| CollectField t (C1 (MetaCons ctor _ _) f) = AddToStat ctor (CountField t f) EmptyStat | |
| CollectField t (M1 _ _ r) = CollectField t r | |
| CollectField t (l :+: r) = MergeStat (CollectField t l) (CollectField t r) |
type family CollectFieldsOrdered (r :: * -> *) :: [Symbol] where ... Source #
Equations
| CollectFieldsOrdered (l :*: r) = Merge (CollectFieldsOrdered l) (CollectFieldsOrdered r) | |
| CollectFieldsOrdered (S1 (MetaSel (Just name) _ _ _) _) = '[name] | |
| CollectFieldsOrdered (M1 _ m a) = CollectFieldsOrdered a | |
| CollectFieldsOrdered _ = '[] |
Constructors
| TypeStat | |
Fields
| |
type family HasTotalFieldP (field :: Symbol) f :: Maybe Type where ... Source #
Equations
| HasTotalFieldP field (S1 (MetaSel (Just field) _ _ _) (Rec0 t)) = Just t | |
| HasTotalFieldP field (l :*: r) = Alt (HasTotalFieldP field l) (HasTotalFieldP field r) | |
| HasTotalFieldP field (l :+: r) = Both (HasTotalFieldP field l) (HasTotalFieldP field r) | |
| HasTotalFieldP field (S1 _ _) = Nothing | |
| HasTotalFieldP field (C1 _ f) = HasTotalFieldP field f | |
| HasTotalFieldP field (D1 _ f) = HasTotalFieldP field f | |
| HasTotalFieldP field (K1 _ _) = Nothing | |
| HasTotalFieldP field U1 = Nothing | |
| HasTotalFieldP field V1 = Nothing |
type family HasTotalTypeP (typ :: Type) f :: Maybe Type where ... Source #
Equations
| HasTotalTypeP typ (S1 _ (K1 _ typ)) = Just typ | |
| HasTotalTypeP typ (l :*: r) = Alt (HasTotalTypeP typ l) (HasTotalTypeP typ r) | |
| HasTotalTypeP typ (l :+: r) = Both (HasTotalTypeP typ l) (HasTotalTypeP typ r) | |
| HasTotalTypeP typ (S1 _ _) = Nothing | |
| HasTotalTypeP typ (C1 _ f) = HasTotalTypeP typ f | |
| HasTotalTypeP typ (D1 _ f) = HasTotalTypeP typ f | |
| HasTotalTypeP typ (K1 _ _) = Nothing | |
| HasTotalTypeP typ U1 = Nothing | |
| HasTotalTypeP typ V1 = Nothing |
type family HasTotalPositionP (pos :: Nat) f :: Maybe Type where ... Source #
Equations
| HasTotalPositionP pos (S1 _ (K1 (Pos pos) t)) = Just t | |
| HasTotalPositionP pos (l :*: r) = Alt (HasTotalPositionP pos l) (HasTotalPositionP pos r) | |
| HasTotalPositionP pos (l :+: r) = Both (HasTotalPositionP pos l) (HasTotalPositionP pos r) | |
| HasTotalPositionP pos (S1 _ _) = Nothing | |
| HasTotalPositionP pos (C1 _ f) = HasTotalPositionP pos f | |
| HasTotalPositionP pos (D1 _ f) = HasTotalPositionP pos f | |
| HasTotalPositionP pos (K1 _ _) = Nothing | |
| HasTotalPositionP pos U1 = Nothing | |
| HasTotalPositionP pos V1 = Nothing |
type family HasPartialTypeP a f :: Bool where ... Source #
Equations
| HasPartialTypeP t (l :+: r) = HasPartialTypeP t l || HasPartialTypeP t r | |
| HasPartialTypeP t (C1 m f) = t == GTypes f | |
| HasPartialTypeP t (M1 _ _ f) = HasPartialTypeP t f | |
| HasPartialTypeP t _ = False |
Instances
| Subtype a Void Source # | See Note [Uncluttering type signatures] |
| Subtype Void a Source # | See Note [Uncluttering type signatures] |
| HasType a Void Source # | See Note [Uncluttering type signatures] |
| AsSubtype a Void Source # | See Note [Uncluttering type signatures] |
| AsSubtype Void a Source # | See Note [Uncluttering type signatures] |
| AsType a Void Source # | See Note [Uncluttering type signatures] |
Defined in Data.Generics.Sum.Typed | |
| AsType Void a Source # | See Note [Uncluttering type signatures] |
Defined in Data.Generics.Sum.Typed | |
Instances
| HasField_ f (Void1 a) (Void1 b) a b Source # | |
| HasField f (Void1 a) (Void1 b) a b Source # | See Note [Uncluttering type signatures] |
| HasParam p (Void1 a) (Void1 b) a b Source # | |
Defined in Data.Generics.Product.Param | |
| HasPosition_ f (Void1 a) (Void1 b) a b Source # | |
| HasPosition f (Void1 a) (Void1 b) a b Source # | See Note [Uncluttering type signatures] |
| AsConstructor_ ctor (Void1 a) (Void1 b) a b Source # | |
| AsConstructor ctor (Void1 a) (Void1 b) a b Source # | See Note [Uncluttering type signatures] |
type family NoGeneric (a :: Type) (ctxt :: [ErrorMessage]) :: Constraint where ... Source #
type family Defined_list (break :: [*]) (err :: Constraint) (a :: k) :: k where ... Source #
Equations
| Defined_list '[Void] _ _ = Any | |
| Defined_list _ _ k = k |
type family QuoteType (typ :: k) :: ErrorMessage where ... Source #
type family PrettyError (ctxt :: [ErrorMessage]) :: k where ... Source #
Equations
| PrettyError '[] = TypeError (Text "") | |
| PrettyError (c ': cs) = TypeError ((Text "| " :<>: c) :$$: PrettyLines cs) |
class GAsConstructor (ctor :: Symbol) s t a b | ctor s -> a, ctor t -> b where Source #
As AsConstructor but over generic representations as defined by
GHC.Generics.
Instances
| GSumAsConstructor ctor (HasCtorP ctor l) l r l' r' a b => GAsConstructor ctor (l :+: r) (l' :+: r') a b Source # | |
| GAsConstructor ctor f f' a b => GAsConstructor ctor (M1 D meta f) (M1 D meta f') a b Source # | |
| (GIsList f f as as, GIsList g g bs bs, ListTuple a as, ListTuple b bs) => GAsConstructor ctor (M1 C (MetaCons ctor fixity fields) f) (M1 C (MetaCons ctor fixity fields) g) a b Source # | |
type GAsConstructor' ctor s a = GAsConstructor ctor s s a a Source #
class GAsType (f :: Type -> Type) (as :: [Type]) where Source #
As AsType but over generic representations as defined by GHC.Generics.
class GAsSubtype (subf :: Type -> Type) (supf :: Type -> Type) where Source #
As AsSubtype but over generic representations as defined by
GHC.Generics.
Instances
| (GSplash sub sup, GDowncast sub sup) => GAsSubtype sub sup Source # | |
Defined in Data.Generics.Sum.Internal.Subtype | |
type family CRep (a :: Type) :: G where ... Source #
In-order labeling of the generic tree with the field positions
We replace the (K1 R a) nodes with (K1 (Pos n) a), where n is the position
of the field in question in the data type. This is convenient, because we
can reuse all the existing functions as long as they are polymorphic in the
first parameter of K1.
class GLens (pred :: Pred) (s :: Type -> Type) (t :: Type -> Type) a b | s pred -> a, t pred -> b where Source #
Instances
| GLens pred (K1 r a :: Type -> Type) (K1 r b :: Type -> Type) a b Source # | |
| (GLens pred l l' a b, GLens pred r r' a b) => GLens pred (l :+: r) (l' :+: r') a b Source # | |
| GProductLens (Eval pred l) pred l r l' r' a b => GLens pred (l :*: r) (l' :*: r') a b Source # | |
| GLens pred f g a b => GLens pred (M1 m meta f) (M1 m meta g) a b Source # | |
class GUpcast (sub :: Type -> Type) (sup :: Type -> Type) where Source #
Instances
| GUpcast sub sup => GUpcast sub (D1 c sup) Source # | |
Defined in Data.Generics.Product.Internal.Subtype | |
| GUpcast sub sup => GUpcast sub (C1 c sup) Source # | |
Defined in Data.Generics.Product.Internal.Subtype | |
| GLens' (HasTotalFieldPSym field) sub t => GUpcast sub (S1 (MetaSel (Just field) p f b) (Rec0 t)) Source # | |
| (GUpcast sub a, GUpcast sub b) => GUpcast sub (a :*: b) Source # | |
Defined in Data.Generics.Product.Internal.Subtype | |
class GSmash sub sup where Source #
Instances
| GSmash sub sup => GSmash (D1 c sub :: k -> Type) (sup :: k -> Type) Source # | |
| GSmash sub sup => GSmash (C1 c sub :: k -> Type) (sup :: k -> Type) Source # | |
| (GSmash a sup, GSmash b sup) => GSmash (a :*: b :: k -> Type) (sup :: k -> Type) Source # | |
| (leaf ~ S1 (MetaSel (Just field) p f b) t, GSmashLeaf leaf sup (HasTotalFieldP field sup)) => GSmash (S1 (MetaSel (Just field) p f b) t :: k -> Type) (sup :: k -> Type) Source # | |
class GHasConstraints (c :: * -> * -> Constraint) s t where Source #
Methods
gconstraints :: TraversalC c (s x) (t x) Source #
Instances
class GHasConstraints' (c :: * -> Constraint) (f :: * -> *) where Source #
Constrained traversal.
Methods
gconstraints' :: forall g x. Applicative g => (forall a. c a => a -> g a) -> f x -> g (f x) Source #
Instances
class GIsList (f :: Type -> Type) (g :: Type -> Type) (as :: [Type]) (bs :: [Type]) | f -> as, g -> bs, bs f -> g, as g -> f where Source #
Minimal complete definition
Instances
| GIsList (U1 :: Type -> Type) (U1 :: Type -> Type) ([] :: [Type]) ([] :: [Type]) Source # | |
| GIsList (Rec0 a) (Rec0 b) (a ': ([] :: [Type])) (b ': ([] :: [Type])) Source # | |
| (GIsList l l' as as', GIsList r r' bs bs', Appending as bs cs as' bs' cs', cs ~ (as ++ bs), cs' ~ (as' ++ bs')) => GIsList (l :*: r) (l' :*: r') cs cs' Source # | |
| GIsList f g as bs => GIsList (M1 t meta f) (M1 t meta g) as bs Source # | |
class IndexList (i :: Nat) as bs a b | i as -> a, i bs -> b, i as b -> bs, i bs a -> as where Source #
class ListTuple (tuple :: Type) (as :: [Type]) | as -> tuple where Source #
Minimal complete definition
Associated Types
type ListToTuple as :: Type Source #
Methods
tupled :: Iso' (HList as) tuple Source #
tupleToList :: tuple -> HList as Source #
listToTuple :: HList as -> tuple Source #
Instances
| ListTuple () ([] :: [Type]) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple [] :: Type Source # | |
| ListTuple a (a ': ([] :: [Type])) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': []) :: Type Source # | |
| ListTuple (a, b) (a ': (b ': ([] :: [Type]))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': [])) :: Type Source # | |
| ListTuple (a, b, c) (a ': (b ': (c ': ([] :: [Type])))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': []))) :: Type Source # | |
| ListTuple (a, b, c, d) (a ': (b ': (c ': (d ': ([] :: [Type]))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': [])))) :: Type Source # | |
| ListTuple (a, b, c, d, e) (a ': (b ': (c ': (d ': (e ': ([] :: [Type])))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': []))))) :: Type Source # | |
| ListTuple (a, b, c, d, e, f) (a ': (b ': (c ': (d ': (e ': (f ': ([] :: [Type]))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': [])))))) :: Type Source # | |
| ListTuple (a, b, c, d, e, f, g) (a ': (b ': (c ': (d ': (e ': (f ': (g ': ([] :: [Type])))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': []))))))) :: Type Source # Methods tupled :: Iso' (HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': [])))))))) (a, b, c, d, e, f, g) Source # tupleToList :: (a, b, c, d, e, f, g) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': []))))))) Source # listToTuple :: HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': []))))))) -> (a, b, c, d, e, f, g) Source # | |
| ListTuple (a, b, c, d, e, f, g, h) (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': ([] :: [Type]))))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': [])))))))) :: Type Source # Methods tupled :: Iso' (HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': []))))))))) (a, b, c, d, e, f, g, h) Source # tupleToList :: (a, b, c, d, e, f, g, h) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': [])))))))) Source # listToTuple :: HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': [])))))))) -> (a, b, c, d, e, f, g, h) Source # | |
| ListTuple (a, b, c, d, e, f, g, h, j) (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': ([] :: [Type])))))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': []))))))))) :: Type Source # Methods tupled :: Iso' (HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': [])))))))))) (a, b, c, d, e, f, g, h, j) Source # tupleToList :: (a, b, c, d, e, f, g, h, j) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': []))))))))) Source # listToTuple :: HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': []))))))))) -> (a, b, c, d, e, f, g, h, j) Source # | |
| ListTuple (a, b, c, d, e, f, g, h, j, k) (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': ([] :: [Type]))))))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': [])))))))))) :: Type Source # Methods tupled :: Iso' (HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': []))))))))))) (a, b, c, d, e, f, g, h, j, k) Source # tupleToList :: (a, b, c, d, e, f, g, h, j, k) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': [])))))))))) Source # listToTuple :: HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': [])))))))))) -> (a, b, c, d, e, f, g, h, j, k) Source # | |
| ListTuple (a, b, c, d, e, f, g, h, j, k, l) (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': ([] :: [Type])))))))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': []))))))))))) :: Type Source # Methods tupled :: Iso' (HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': [])))))))))))) (a, b, c, d, e, f, g, h, j, k, l) Source # tupleToList :: (a, b, c, d, e, f, g, h, j, k, l) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': []))))))))))) Source # listToTuple :: HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': []))))))))))) -> (a, b, c, d, e, f, g, h, j, k, l) Source # | |
| ListTuple (a, b, c, d, e, f, g, h, j, k, l, m) (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': ([] :: [Type]))))))))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': [])))))))))))) :: Type Source # Methods tupled :: Iso' (HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': []))))))))))))) (a, b, c, d, e, f, g, h, j, k, l, m) Source # tupleToList :: (a, b, c, d, e, f, g, h, j, k, l, m) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': [])))))))))))) Source # listToTuple :: HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': [])))))))))))) -> (a, b, c, d, e, f, g, h, j, k, l, m) Source # | |
| ListTuple (a, b, c, d, e, f, g, h, j, k, l, m, n) (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': ([] :: [Type])))))))))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': []))))))))))))) :: Type Source # Methods tupled :: Iso' (HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': [])))))))))))))) (a, b, c, d, e, f, g, h, j, k, l, m, n) Source # tupleToList :: (a, b, c, d, e, f, g, h, j, k, l, m, n) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': []))))))))))))) Source # listToTuple :: HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': []))))))))))))) -> (a, b, c, d, e, f, g, h, j, k, l, m, n) Source # | |
| ListTuple (a, b, c, d, e, f, g, h, j, k, l, m, n, o) (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': ([] :: [Type]))))))))))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': [])))))))))))))) :: Type Source # Methods tupled :: Iso' (HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': []))))))))))))))) (a, b, c, d, e, f, g, h, j, k, l, m, n, o) Source # tupleToList :: (a, b, c, d, e, f, g, h, j, k, l, m, n, o) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': [])))))))))))))) Source # listToTuple :: HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': [])))))))))))))) -> (a, b, c, d, e, f, g, h, j, k, l, m, n, o) Source # | |
| ListTuple (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p) (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': ([] :: [Type])))))))))))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': []))))))))))))))) :: Type Source # Methods tupled :: Iso' (HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': [])))))))))))))))) (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p) Source # tupleToList :: (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': []))))))))))))))) Source # listToTuple :: HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': []))))))))))))))) -> (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p) Source # | |
| ListTuple (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q) (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': (q ': ([] :: [Type]))))))))))))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': (q ': [])))))))))))))))) :: Type Source # Methods tupled :: Iso' (HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': (q ': []))))))))))))))))) (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q) Source # tupleToList :: (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': (q ': [])))))))))))))))) Source # listToTuple :: HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': (q ': [])))))))))))))))) -> (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q) Source # | |
| ListTuple (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q, r) (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': (q ': (r ': ([] :: [Type])))))))))))))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': (q ': (r ': []))))))))))))))))) :: Type Source # Methods tupled :: Iso' (HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': (q ': (r ': [])))))))))))))))))) (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q, r) Source # tupleToList :: (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q, r) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': (q ': (r ': []))))))))))))))))) Source # listToTuple :: HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': (q ': (r ': []))))))))))))))))) -> (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q, r) Source # | |
| ListTuple (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q, r, s) (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': (q ': (r ': (s ': ([] :: [Type]))))))))))))))))))) Source # | |
Defined in Data.Generics.Product.Internal.HList Associated Types type ListToTuple (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': (q ': (r ': (s ': [])))))))))))))))))) :: Type Source # Methods tupled :: Iso' (HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': (q ': (r ': (s ': []))))))))))))))))))) (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q, r, s) Source # tupleToList :: (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q, r, s) -> HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': (q ': (r ': (s ': [])))))))))))))))))) Source # listToTuple :: HList (a ': (b ': (c ': (d ': (e ': (f ': (g ': (h ': (j ': (k ': (l ': (m ': (n ': (o ': (p ': (q ': (r ': (s ': [])))))))))))))))))) -> (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q, r, s) Source # | |
type family TupleToList a where ... Source #
Equations
| TupleToList () = '[] | |
| TupleToList (a, b) = '[a, b] | |
| TupleToList (a, b, c) = '[a, b, c] | |
| TupleToList (a, b, c, d) = '[a, b, c, d] | |
| TupleToList (a, b, c, d, e) = '[a, b, c, d, e] | |
| TupleToList (a, b, c, d, e, f) = '[a, b, c, d, e, f] | |
| TupleToList (a, b, c, d, e, f, g) = '[a, b, c, d, e, f, g] | |
| TupleToList (a, b, c, d, e, f, g, h) = '[a, b, c, d, e, f, g, h] | |
| TupleToList (a, b, c, d, e, f, g, h, j) = '[a, b, c, d, e, f, g, h, j] | |
| TupleToList (a, b, c, d, e, f, g, h, j, k) = '[a, b, c, d, e, f, g, h, j, k] | |
| TupleToList (a, b, c, d, e, f, g, h, j, k, l) = '[a, b, c, d, e, f, g, h, j, k, l] | |
| TupleToList (a, b, c, d, e, f, g, h, j, k, l, m) = '[a, b, c, d, e, f, g, h, j, k, l, m] | |
| TupleToList (a, b, c, d, e, f, g, h, j, k, l, m, n) = '[a, b, c, d, e, f, g, h, j, k, l, m, n] | |
| TupleToList (a, b, c, d, e, f, g, h, j, k, l, m, n, o) = '[a, b, c, d, e, f, g, h, j, k, l, m, n, o] | |
| TupleToList (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p) = '[a, b, c, d, e, f, g, h, j, k, l, m, n, o, p] | |
| TupleToList (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q) = '[a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q] | |
| TupleToList (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q, r) = '[a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q, r] | |
| TupleToList (a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q, r, s) = '[a, b, c, d, e, f, g, h, j, k, l, m, n, o, p, q, r, s] | |
| TupleToList a = '[a] |
van Laarhoven optics
data Exchange a b s t Source #
Constructors
| Exchange (s -> a) (b -> t) |
Instances
| Profunctor (Exchange a b) Source # | |
Defined in Data.Generics.Internal.VL.Iso Methods dimap :: (a0 -> b0) -> (c -> d) -> Exchange a b b0 c -> Exchange a b a0 d # lmap :: (a0 -> b0) -> Exchange a b b0 c -> Exchange a b a0 c # rmap :: (b0 -> c) -> Exchange a b a0 b0 -> Exchange a b a0 c # (#.) :: Coercible c b0 => q b0 c -> Exchange a b a0 b0 -> Exchange a b a0 c # (.#) :: Coercible b0 a0 => Exchange a b b0 c -> q a0 b0 -> Exchange a b a0 c # | |
| Functor (Exchange a b s) Source # | |
type Iso' s a = forall p f. (Profunctor p, Functor f) => p a (f a) -> p s (f s) Source #
type Iso s t a b = forall p f. (Profunctor p, Functor f) => p a (f b) -> p s (f t) Source #
withIso :: Iso s t a b -> ((s -> a) -> (b -> t) -> r) -> r Source #
Extract the two functions, one from s -> a and
one from b -> t that characterize an Iso.
repIso :: (Generic a, Generic b) => Iso a b (Rep a x) (Rep b x) Source #
A type and its generic representation are isomorphic
lens2lensvl :: ALens a b s t -> Lens s t a b Source #
type Prism s t a b = forall p f. (Choice p, Applicative f) => p a (f b) -> p s (f t) Source #
Type alias for prism
prismRavel :: (Market a b a b -> Market a b s t) -> Prism s t a b Source #
prism2prismvl :: Market a b s t -> Prism s t a b Source #
type Traversal' s a = forall f. Applicative f => (a -> f a) -> s -> f s Source #
Type alias for traversal
type TraversalC (c :: * -> * -> Constraint) s t = forall f. Applicative f => (forall a b. c a b => a -> f b) -> s -> f t Source #
type TraversalC' (c :: * -> Constraint) s = forall f. Applicative f => (forall a. c a => a -> f a) -> s -> f s Source #
type Traversal s t a b = forall f. Applicative f => (a -> f b) -> s -> f t Source #
confusing :: Applicative f => Traversal s t a b -> (a -> f b) -> s -> f t Source #
confusingC :: forall c f s. Applicative f => TraversalC' c s -> LensLikeC c f s Source #
liftCurriedYoneda :: Applicative f => f a -> Curried (Yoneda f) a Source #
Constructors
| Curried | |
Fields
| |
liftCurried :: Applicative f => f a -> Curried f a Source #
lowerCurried :: Applicative f => Curried f a -> f a Source #
Instances
| Functor (Yoneda f) Source # | |
| Applicative f => Applicative (Yoneda f) Source # | |
liftYoneda :: Functor f => f a -> Yoneda f a Source #
lowerYoneda :: Yoneda f a -> f a Source #