Safe Haskell | None |
---|---|
Language | Haskell2010 |
- type family Functors lst :: Constraint where ...
- type family Applicatives lst :: Constraint where ...
- fmap0 :: (a -> b) -> a -> b
- (.) :: Functor f1 => (a -> b) -> f1 a -> f1 b
- (∘) :: Functor f1 => (a -> b) -> f1 a -> f1 b
- fmap2 :: Functors '[f1, f2] => (a -> b) -> f2 (f1 a) -> f2 (f1 b)
- (.:) :: Functors '[f1, f2] => (a -> b) -> f2 (f1 a) -> f2 (f1 b)
- (<<$>>) :: Functors '[f1, f2] => (a -> b) -> f2 (f1 a) -> f2 (f1 b)
- (∘∘) :: Functors '[f1, f2] => (a -> b) -> f2 (f1 a) -> f2 (f1 b)
- fmap3 :: Functors '[f1, f2, f3] => (a -> b) -> f3 (f2 (f1 a)) -> f3 (f2 (f1 b))
- (.:.) :: Functors '[f1, f2, f3] => (a -> b) -> f3 (f2 (f1 a)) -> f3 (f2 (f1 b))
- (<<<$>>>) :: Functors '[f1, f2, f3] => (a -> b) -> f3 (f2 (f1 a)) -> f3 (f2 (f1 b))
- (∘∘∘) :: Functors '[f1, f2, f3] => (a -> b) -> f3 (f2 (f1 a)) -> f3 (f2 (f1 b))
- fmap4 :: Functors '[f1, f2, f3, f4] => (a -> b) -> f4 (f3 (f2 (f1 a))) -> f4 (f3 (f2 (f1 b)))
- (.::) :: Functors '[f1, f2, f3, f4] => (a -> b) -> f4 (f3 (f2 (f1 a))) -> f4 (f3 (f2 (f1 b)))
- (<<<<$>>>>) :: Functors '[f1, f2, f3, f4] => (a -> b) -> f4 (f3 (f2 (f1 a))) -> f4 (f3 (f2 (f1 b)))
- (∘∘∘∘) :: Functors '[f1, f2, f3, f4] => (a -> b) -> f4 (f3 (f2 (f1 a))) -> f4 (f3 (f2 (f1 b)))
- fmap5 :: Functors '[f1, f2, f3, f4, f5] => (a -> b) -> f5 (f4 (f3 (f2 (f1 a)))) -> f5 (f4 (f3 (f2 (f1 b))))
- (.::.) :: Functors '[f1, f2, f3, f4, f5] => (a -> b) -> f5 (f4 (f3 (f2 (f1 a)))) -> f5 (f4 (f3 (f2 (f1 b))))
- (<<<<<$>>>>>) :: Functors '[f1, f2, f3, f4, f5] => (a -> b) -> f5 (f4 (f3 (f2 (f1 a)))) -> f5 (f4 (f3 (f2 (f1 b))))
- (∘∘∘∘∘) :: Functors '[f1, f2, f3, f4, f5] => (a -> b) -> f5 (f4 (f3 (f2 (f1 a)))) -> f5 (f4 (f3 (f2 (f1 b))))
- fmap1 :: Functor f => (a -> b) -> f a -> f b
- (<<*>>) :: Applicatives '[f1, f2] => f2 (f1 (a -> b)) -> f2 (f1 a) -> f2 (f1 b)
- (<<<*>>>) :: Applicatives '[f1, f2, f3] => f3 (f2 (f1 (a -> b))) -> f3 (f2 (f1 a)) -> f3 (f2 (f1 b))
- (<<<<*>>>>) :: Applicatives '[f1, f2, f3, f4] => f4 (f3 (f2 (f1 (a -> b)))) -> f4 (f3 (f2 (f1 a))) -> f4 (f3 (f2 (f1 b)))
- (<<<<<*>>>>>) :: Applicatives '[f1, f2, f3, f4, f5] => f5 (f4 (f3 (f2 (f1 (a -> b))))) -> f5 (f4 (f3 (f2 (f1 a)))) -> f5 (f4 (f3 (f2 (f1 b))))
- (|$) :: (a -> b) -> a -> (a, b)
- ($|) :: (a -> b) -> a -> (b, a)
- (<|$>) :: Functor f => (a -> b) -> f a -> f (a, b)
- (<$|>) :: Functor f => (a -> b) -> f a -> f (b, a)
- composed :: Iso' (f (g a)) (Compose f g a)
- nested :: (Functor f2, Functor f1) => (f2 (Compose * * f3 g1 a1) -> f1 (Compose * * f4 g2 a2)) -> f2 (f3 (g1 a1)) -> f1 (f4 (g2 a2))
Documentation
type family Functors lst :: Constraint where ... Source #
type family Applicatives lst :: Constraint where ... Source #
Applicatives '[] = () | |
Applicatives (f ': fs) = (Applicative f, Applicatives fs) |
(<<<$>>>) :: Functors '[f1, f2, f3] => (a -> b) -> f3 (f2 (f1 a)) -> f3 (f2 (f1 b)) infixl 4 Source #
fmap4 :: Functors '[f1, f2, f3, f4] => (a -> b) -> f4 (f3 (f2 (f1 a))) -> f4 (f3 (f2 (f1 b))) Source #
(.::) :: Functors '[f1, f2, f3, f4] => (a -> b) -> f4 (f3 (f2 (f1 a))) -> f4 (f3 (f2 (f1 b))) infixr 8 Source #
(<<<<$>>>>) :: Functors '[f1, f2, f3, f4] => (a -> b) -> f4 (f3 (f2 (f1 a))) -> f4 (f3 (f2 (f1 b))) infixl 4 Source #
(∘∘∘∘) :: Functors '[f1, f2, f3, f4] => (a -> b) -> f4 (f3 (f2 (f1 a))) -> f4 (f3 (f2 (f1 b))) infixr 8 Source #
fmap5 :: Functors '[f1, f2, f3, f4, f5] => (a -> b) -> f5 (f4 (f3 (f2 (f1 a)))) -> f5 (f4 (f3 (f2 (f1 b)))) Source #
(.::.) :: Functors '[f1, f2, f3, f4, f5] => (a -> b) -> f5 (f4 (f3 (f2 (f1 a)))) -> f5 (f4 (f3 (f2 (f1 b)))) infixr 8 Source #
(<<<<<$>>>>>) :: Functors '[f1, f2, f3, f4, f5] => (a -> b) -> f5 (f4 (f3 (f2 (f1 a)))) -> f5 (f4 (f3 (f2 (f1 b)))) infixl 4 Source #
(∘∘∘∘∘) :: Functors '[f1, f2, f3, f4, f5] => (a -> b) -> f5 (f4 (f3 (f2 (f1 a)))) -> f5 (f4 (f3 (f2 (f1 b)))) infixr 8 Source #
(<<*>>) :: Applicatives '[f1, f2] => f2 (f1 (a -> b)) -> f2 (f1 a) -> f2 (f1 b) infixl 4 Source #
(<<<*>>>) :: Applicatives '[f1, f2, f3] => f3 (f2 (f1 (a -> b))) -> f3 (f2 (f1 a)) -> f3 (f2 (f1 b)) infixl 4 Source #
(<<<<*>>>>) :: Applicatives '[f1, f2, f3, f4] => f4 (f3 (f2 (f1 (a -> b)))) -> f4 (f3 (f2 (f1 a))) -> f4 (f3 (f2 (f1 b))) infixl 4 Source #
(<<<<<*>>>>>) :: Applicatives '[f1, f2, f3, f4, f5] => f5 (f4 (f3 (f2 (f1 (a -> b))))) -> f5 (f4 (f3 (f2 (f1 a)))) -> f5 (f4 (f3 (f2 (f1 b)))) infixl 4 Source #
nested :: (Functor f2, Functor f1) => (f2 (Compose * * f3 g1 a1) -> f1 (Compose * * f4 g2 a2)) -> f2 (f3 (g1 a1)) -> f1 (f4 (g2 a2)) Source #
following functions are usefull when operating on nested structures with lenses, for example | given function foo :: a -> m (n a) and a lens l :: Lens' x a, we can use | nested l foo to get signature of x -> m (n x)