Copyright | (C) 2011-2015 Edward Kmett |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Stability | provisional |
Portability | portable |
Safe Haskell | Safe |
Language | Haskell2010 |
Data.Bifunctor.Apply
Contents
Description
Synopsis
- class (forall a. Functor (p a)) => Bifunctor (p :: Type -> Type -> Type) where
- class Bifunctor p => Biapply p where
- (<<$>>) :: (a -> b) -> a -> b
- (<<..>>) :: Biapply p => p a c -> p (a -> b) (c -> d) -> p b d
- bilift2 :: Biapply w => (a -> b -> c) -> (d -> e -> f) -> w a d -> w b e -> w c f
- bilift3 :: Biapply w => (a -> b -> c -> d) -> (e -> f -> g -> h) -> w a e -> w b f -> w c g -> w d h
Biappliable bifunctors
class (forall a. Functor (p a)) => Bifunctor (p :: Type -> Type -> Type) where #
Instances
Bifunctor Either | |
Bifunctor Arg | |
Bifunctor (,) | |
Bifunctor (Const :: Type -> Type -> Type) | |
Bifunctor (Tagged :: Type -> Type -> Type) | |
Bifunctor (Constant :: Type -> Type -> Type) | |
Bifunctor ((,,) x1) | |
Bifunctor (K1 i :: Type -> Type -> Type) | |
Bifunctor ((,,,) x1 x2) | |
Functor f => Bifunctor (Clown f :: Type -> Type -> Type) | |
Bifunctor p => Bifunctor (Flip p) | |
Functor g => Bifunctor (Joker g :: Type -> Type -> Type) | |
Bifunctor p => Bifunctor (WrappedBifunctor p) | |
Defined in Data.Bifunctor.Wrapped Methods bimap :: (a -> b) -> (c -> d) -> WrappedBifunctor p a c -> WrappedBifunctor p b d # first :: (a -> b) -> WrappedBifunctor p a c -> WrappedBifunctor p b c # second :: (b -> c) -> WrappedBifunctor p a b -> WrappedBifunctor p a c # | |
Bifunctor ((,,,,) x1 x2 x3) | |
(Bifunctor f, Bifunctor g) => Bifunctor (Product f g) | |
Bifunctor ((,,,,,) x1 x2 x3 x4) | |
(Functor f, Bifunctor p) => Bifunctor (Tannen f p) | |
Bifunctor ((,,,,,,) x1 x2 x3 x4 x5) | |
(Bifunctor p, Functor f, Functor g) => Bifunctor (Biff p f g) | |
class Bifunctor p => Biapply p where #
Minimal complete definition
Methods
(<<.>>) :: p (a -> b) (c -> d) -> p a c -> p b d infixl 4 #
Instances
Biapply Arg # | |
Biapply (,) # | |
Biapply (Const :: Type -> Type -> Type) # | |
Biapply (Tagged :: Type -> Type -> Type) # | |
Semigroup x => Biapply ((,,) x) # | |
(Semigroup x, Semigroup y) => Biapply ((,,,) x y) # | |
Apply f => Biapply (Clown f :: Type -> Type -> Type) # | |
Biapply p => Biapply (Flip p) # | |
Apply g => Biapply (Joker g :: Type -> Type -> Type) # | |
Biapply p => Biapply (WrappedBifunctor p) # | |
Defined in Data.Functor.Bind.Class Methods (<<.>>) :: WrappedBifunctor p (a -> b) (c -> d) -> WrappedBifunctor p a c -> WrappedBifunctor p b d # (.>>) :: WrappedBifunctor p a b -> WrappedBifunctor p c d -> WrappedBifunctor p c d # (<<.) :: WrappedBifunctor p a b -> WrappedBifunctor p c d -> WrappedBifunctor p a b # | |
(Semigroup x, Semigroup y, Semigroup z) => Biapply ((,,,,) x y z) # | |
(Biapply p, Biapply q) => Biapply (Product p q) # | |
(Apply f, Biapply p) => Biapply (Tannen f p) # | |
(Biapply p, Apply f, Apply g) => Biapply (Biff p f g) # | |