| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Hedgehog.Internal.Barbie
Description
For compatibility across different versions of the barbie package.
Synopsis
Documentation
class FunctorB (b :: (k -> Type) -> Type) where Source #
Barbie-types that can be mapped over. Instances of FunctorB should
satisfy the following laws:
bmapid=idbmapf .bmapg =bmap(f . g)
There is a default bmap implementation for Generic types, so
instances can derived automatically.
Minimal complete definition
Nothing
Methods
bmap :: (forall (a :: k). f a -> g a) -> b f -> b g Source #
default bmap :: forall f g. CanDeriveFunctorB b f g => (forall (a :: k). f a -> g a) -> b f -> b g Source #
Instances
| FunctorB (Var a :: (Type -> Type) -> Type) Source # | |
| FunctorB (Proxy :: (k -> Type) -> Type) | |
| FunctorB (Const x :: (k -> Type) -> Type) | |
| FunctorB (Constant x :: (k -> Type) -> Type) | |
| (FunctorB a, FunctorB b) => FunctorB (Product a b :: (k -> Type) -> Type) | |
| (FunctorB a, FunctorB b) => FunctorB (Sum a b :: (k -> Type) -> Type) | |
| (Functor f, FunctorB b) => FunctorB (Compose f b :: (k -> Type) -> Type) | |
| FunctorT b => FunctorB (Flip b f :: (k1 -> Type) -> Type) | |
class FunctorB b => TraversableB (b :: (k -> Type) -> Type) where Source #
Barbie-types that can be traversed from left to right. Instances should satisfy the following laws:
t .btraversef =btraverse(t . f) -- naturalitybtraverseIdentity=Identity-- identitybtraverse(Compose.fmapg . f) =Compose.fmap(btraverseg) .btraversef -- composition
There is a default btraverse implementation for Generic types, so
instances can derived automatically.
Minimal complete definition
Nothing
Methods
btraverse :: Applicative e => (forall (a :: k). f a -> e (g a)) -> b f -> e (b g) Source #
default btraverse :: forall e f g. (Applicative e, CanDeriveTraversableB b f g) => (forall (a :: k). f a -> e (g a)) -> b f -> e (b g) Source #
Instances
| TraversableB (Var a :: (Type -> Type) -> Type) Source # | |
Defined in Hedgehog.Internal.State | |
| TraversableB (Proxy :: (k -> Type) -> Type) | |
Defined in Barbies.Internal.TraversableB | |
| TraversableB (Const a :: (k -> Type) -> Type) | |
Defined in Barbies.Internal.TraversableB | |
| TraversableB (Constant a :: (k -> Type) -> Type) | |
Defined in Barbies.Internal.TraversableB | |
| (TraversableB a, TraversableB b) => TraversableB (Product a b :: (k -> Type) -> Type) | |
Defined in Barbies.Internal.TraversableB | |
| (TraversableB a, TraversableB b) => TraversableB (Sum a b :: (k -> Type) -> Type) | |
Defined in Barbies.Internal.TraversableB | |
| (Traversable f, TraversableB b) => TraversableB (Compose f b :: (k -> Type) -> Type) | |
Defined in Barbies.Internal.TraversableB | |
| TraversableT b => TraversableB (Flip b f :: (k1 -> Type) -> Type) | |
Defined in Barbies.Bi | |
newtype Rec p a (x :: k) Source #
Instances
| TraversableB b => GTraversable 0 (f :: k -> Type) (g :: k -> Type) (Rec (b (P 0 f)) (b f) :: k2 -> Type) (Rec (b (P 0 g)) (b g) :: k2 -> Type) | |
Defined in Barbies.Internal.TraversableB | |
| (Traversable h, TraversableB b) => GTraversable 0 (f :: k -> Type) (g :: k -> Type) (Rec (h (b (P 0 f))) (h (b f)) :: k2 -> Type) (Rec (h (b (P 0 g))) (h (b g)) :: k2 -> Type) | |
Defined in Barbies.Internal.TraversableB | |
| (Traversable h, Traversable m, TraversableB b) => GTraversable 0 (f :: k -> Type) (g :: k -> Type) (Rec (m (h (b (P 0 f)))) (m (h (b f))) :: k2 -> Type) (Rec (m (h (b (P 0 g)))) (m (h (b g))) :: k2 -> Type) | |
Defined in Barbies.Internal.TraversableB | |
| ApplicativeB b => GApplicative 0 (f :: k -> Type) (g :: k -> Type) (Rec (b (P 0 f)) (b f) :: k1 -> Type) (Rec (b (P 0 g)) (b g) :: k1 -> Type) (Rec (b (P 0 (Product f g))) (b (Product f g)) :: k1 -> Type) | |
Defined in Barbies.Internal.ApplicativeB Methods gprod :: forall (x :: k1). Proxy 0 -> Proxy f -> Proxy g -> Rec (b (P 0 f)) (b f) x -> Rec (b (P 0 g)) (b g) x -> Rec (b (P 0 (Product f g))) (b (Product f g)) x Source # gpure :: forall (x :: k1). (f ~ g, (Rec (b (P 0 f)) (b f) :: k1 -> Type) ~ (Rec (b (P 0 g)) (b g) :: k1 -> Type)) => Proxy 0 -> Proxy f -> Proxy (Rec (b (P 0 f)) (b f) :: k1 -> Type) -> Proxy (Rec (b (P 0 (Product f g))) (b (Product f g)) :: k1 -> Type) -> (forall (a :: k). f a) -> Rec (b (P 0 f)) (b f) x Source # | |
| (Applicative h, ApplicativeB b) => GApplicative 0 (f :: k -> Type) (g :: k -> Type) (Rec (h (b (P 0 f))) (h (b f)) :: k1 -> Type) (Rec (h (b (P 0 g))) (h (b g)) :: k1 -> Type) (Rec (h (b (P 0 (Product f g)))) (h (b (Product f g))) :: k1 -> Type) | |
Defined in Barbies.Internal.ApplicativeB Methods gprod :: forall (x :: k1). Proxy 0 -> Proxy f -> Proxy g -> Rec (h (b (P 0 f))) (h (b f)) x -> Rec (h (b (P 0 g))) (h (b g)) x -> Rec (h (b (P 0 (Product f g)))) (h (b (Product f g))) x Source # gpure :: forall (x :: k1). (f ~ g, (Rec (h (b (P 0 f))) (h (b f)) :: k1 -> Type) ~ (Rec (h (b (P 0 g))) (h (b g)) :: k1 -> Type)) => Proxy 0 -> Proxy f -> Proxy (Rec (h (b (P 0 f))) (h (b f)) :: k1 -> Type) -> Proxy (Rec (h (b (P 0 (Product f g)))) (h (b (Product f g))) :: k1 -> Type) -> (forall (a :: k). f a) -> Rec (h (b (P 0 f))) (h (b f)) x Source # | |
| (Applicative h, Applicative m, ApplicativeB b) => GApplicative 0 (f :: k -> Type) (g :: k -> Type) (Rec (m (h (b (P 0 f)))) (m (h (b f))) :: k1 -> Type) (Rec (m (h (b (P 0 g)))) (m (h (b g))) :: k1 -> Type) (Rec (m (h (b (P 0 (Product f g))))) (m (h (b (Product f g)))) :: k1 -> Type) | |
Defined in Barbies.Internal.ApplicativeB Methods gprod :: forall (x :: k1). Proxy 0 -> Proxy f -> Proxy g -> Rec (m (h (b (P 0 f)))) (m (h (b f))) x -> Rec (m (h (b (P 0 g)))) (m (h (b g))) x -> Rec (m (h (b (P 0 (Product f g))))) (m (h (b (Product f g)))) x Source # gpure :: forall (x :: k1). (f ~ g, (Rec (m (h (b (P 0 f)))) (m (h (b f))) :: k1 -> Type) ~ (Rec (m (h (b (P 0 g)))) (m (h (b g))) :: k1 -> Type)) => Proxy 0 -> Proxy f -> Proxy (Rec (m (h (b (P 0 f)))) (m (h (b f))) :: k1 -> Type) -> Proxy (Rec (m (h (b (P 0 (Product f g))))) (m (h (b (Product f g)))) :: k1 -> Type) -> (forall (a :: k). f a) -> Rec (m (h (b (P 0 f)))) (m (h (b f))) x Source # | |
| GConstraints n (c :: k1 -> Constraint) (f :: k2) (Rec a' a :: Type -> Type) (Rec b' b :: k3 -> Type) (Rec b' b :: k3 -> Type) | |
| FunctorB b => GFunctor 0 (f :: k -> Type) (g :: k -> Type) (Rec (b' (P 0 f)) (b f) :: k1 -> Type) (Rec (b' (P 0 g)) (b g) :: k1 -> Type) | |
| (Functor h, FunctorB b) => GFunctor 0 (f :: k1 -> Type) (g :: k1 -> Type) (Rec (h' (b' (P 0 f))) (h (b f)) :: k3 -> Type) (Rec (h' (b' (P 0 g))) (h (b g)) :: k3 -> Type) | |
| (Functor h, Functor m, FunctorB b) => GFunctor 0 (f :: k1 -> Type) (g :: k1 -> Type) (Rec (m' (h' (b' (P 0 f)))) (m (h (b f))) :: k4 -> Type) (Rec (m' (h' (b' (P 0 g)))) (m (h (b g))) :: k4 -> Type) | |
| (Functor f, Distributive h, DistributiveB b) => GDistributive n f (Rec (h (b (P n g))) (h (b g)) :: k -> Type) (Rec (h (b (P n (Compose f g)))) (h (b (Compose f g))) :: k -> Type) | |
Defined in Barbies.Internal.DistributiveB | |
| (Functor f, DistributiveB b) => GDistributive 0 f (Rec (b' (P 0 g)) (b g) :: k -> Type) (Rec (b' (P 0 (Compose f g))) (b (Compose f g)) :: k -> Type) | |
Defined in Barbies.Internal.DistributiveB | |
| (ConstraintsB b, AllB c b) => GConstraints 0 (c :: k -> Constraint) (f :: k -> Type) (Other (b' (P 0 (X :: k -> Type))) (b (X :: k -> Type))) (Rec (b' (P 0 f)) (b f) :: k2 -> Type) (Rec (b' (P 0 (Product (Dict c) f))) (b (Product (Dict c) f)) :: k2 -> Type) | |
| (ConstraintsB b, AllB c b) => GConstraints 0 (c :: k -> Constraint) (f :: k -> Type) (Self (b' (P 0 (X :: k -> Type))) (b (X :: k -> Type))) (Rec (b' (P 0 f)) (b f) :: k2 -> Type) (Rec (b' (P 0 (Product (Dict c) f))) (b (Product (Dict c) f)) :: k2 -> Type) | |
| GConstraints n (c :: k1 -> Constraint) (f :: k1 -> Type) (Rec (P n (X :: k1 -> Type) a') (X a) :: Type -> Type) (Rec (P n f a') (f a) :: k2 -> Type) (Rec (P n (Product (Dict c) f) a') (Product (Dict c) f a) :: k2 -> Type) | |
| type GAll n (c :: k -> Constraint) (Rec l r :: Type -> Type) | |
Defined in Barbies.Generics.Constraints | |