Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Synopsis
- newtype (f :: k -> *) :~> (g :: k -> *) = NatTrans {
- nattrans_component :: forall (a :: k). f a -> g a
- type MaybeNT m = Maybe :~> m
- type EitherNT a m = Either a :~> m
- type PairNT a m = (,) a :~> m
- type IndexNT a m = (->) a :~> m
- type ListNT m = List :~> m
- type IMT m = I :~> m
- type IOMT m = m :~> IO
- type NondetMT m = m :~> List
- type FailMT m = m :~> Maybe
- type AltMT a m = m :~> Either a
- type FunctorMT a m = m :~> (->) a
- type MonadNT m = (m :*: m) :~> m
- type ComonadNT m = m :~> (m :*: m)
- type TransposeNT m n = (m :*: n) :~> (n :*: m)
- type (::*::) row col elem = ((:==:) row :*: (:==:) col) elem
- failFailMT :: FailMT f
- succeedFailMT :: FailMT I
- returnMT :: Monad m => I :~> m
- extractMT :: Comonad m => m :~> I
- duplicateMT :: Comonad m => m :~> (m :*: m)
- joinMT :: Monad m => (m :*: m) :~> m
- id_trans :: f :~> f
- unit_trans :: Adjunction f g => I :~> (g :*: f)
- counit_trans :: Adjunction f g => (f :*: g) :~> I
- vert :: (g :~> h) -> (f :~> g) -> f :~> h
- horiz :: Functor h => (h :~> k) -> (f :~> g) -> (h :*: f) :~> (k :*: g)
- map_natural_matrix :: (Functor f, Functor h) => (f :~> g) -> (h :~> i) -> (a -> b) -> (f :*: h) a -> (g :*: i) b
- data Day f g c = forall a b. Day ((a, b) -> c) (f a) (g b)
- convolve :: (Functor f, Functor g) => Day f g c -> (f :*: g) c
- convolve_trans :: (Functor f, Functor g) => Day f g :~> (f :*: g)
- map_rows :: Functor h => (f :~> g) -> (h :*: f) :~> (h :*: g)
- map_columns :: (f :~> g) -> (f :*: h) :~> (g :*: h)
- mapMatrix :: (Functor f, Functor g) => (f :~> f') -> (g :~> g') -> (a -> b) -> (f :*: g) a -> (f' :*: g') b
- rec_map :: Functor f => (f :~> g) -> Rec f -> Rec g
- transform_map :: (Functor f, Functor g) => Coalgebra f a -> (f :~> g) -> Algebra g b -> a -> b
- tmap :: (InitialAlgebra f a, FinalCoalgebra g b) => (f :~> g) -> a -> b
- tapp :: Functor f => (f :~> g) -> (a -> b) -> f a -> g b
- unyoneda :: Category cat => (cat a :~> f) -> f a
- yoneda_function :: Functor t => t a -> (->) a :~> t
- inverse_horiz :: CoFunctor k => (f :~> k) -> (f' :~> k') -> (f :*: k') :~> (k :*: f')
- first_trans :: (y -> x) -> (->) (x, d) :~> (->) (y, d)
- reverse_list :: List :~> List
- concat_list :: (List :*: List) :~> List
- return_trans :: Monad m => I :~> m
- join_trans :: Monad m => (m :*: m) :~> m
- swap_dimensions :: (Applicative g, Traversable f) => (f :*: g) :~> (g :*: f)
- data f :<~>: g = NaturalIso {
- fwdNaturalIso :: f :~> g
- bckNaturalIso :: g :~> f
- id_iso :: f :<~>: f
- symmetricIso :: (g :<~>: f) -> f :<~>: g
- vertIso :: (g :<~>: h) -> (f :<~>: g) -> f :<~>: h
- horizIso :: (Functor f, Functor f') => (f :<~>: f') -> (g :<~>: g') -> (f :*: g) :<~>: (f' :*: g')
- isoMatrix :: (Functor g, Functor g') => (f :<~>: (g :*: h)) -> (g :<~>: g') -> (h :<~>: h') -> f :<~>: (g' :*: h')
- isoMatrix_ :: Functor g' => (f :<~>: ((->) row :*: (->) col)) -> ((->) row :<~>: g') -> ((->) col :<~>: h') -> f :<~>: (g' :*: h')
- outerIso :: Functor g' => ((->) row :<~>: g') -> ((->) col :<~>: h') -> ((->) row :*: (->) col) :<~>: (g' :*: h')
- matrixFrom :: Functor g => (row -> col -> a) -> ((->) row :<~>: g) -> ((->) col :<~>: h) -> (g :*: h) a
- matrixIso :: (Functor f, Functor f', Functor g, Functor g') => (f :<~>: f') -> (g :<~>: g') -> (a :==: b) -> (f :*: g) a :==: (f' :*: g') b
- swap_dimensions_iso :: (Traversable f, Traversable g, Applicative f, Applicative g) => (f :*: g) :<~>: (g :*: f)
- runNaturalIso :: (f :<~>: g) -> f a :==: g a
- newtype (f :~~> g) a = NaturalTrans {
- unNatTrans :: f a -> g a
- transform_matrix :: Applicative f' => ((f :~~> f') :*: g) a -> (f' :*: (g :~~> g')) a -> (f :*: g) a -> (f' :*: g') a
- newtype NaturalTransA (arr :: k -> k -> *) f g a = NaturalTransA {
- unNatTransA :: arr (f a) (g a)
- newtype NatTransA (arr :: k -> k -> *) f g = NatTransA {
- nattrans_componentA :: forall a. arr (f a) (g a)
- id_transA :: Arrow arr => NatTransA arr f f
- horizA :: (Arrow arr, FunctorArrow k arr arr) => NatTransA arr h k -> NatTransA arr f g -> NatTransA arr (h :*: f) (k :*: g)
- vertA :: Arrow arr => NatTransA arr g h -> NatTransA arr f g -> NatTransA arr f h
- invertNatTransA :: NatTransA arr f g -> NatTransA (OpA arr) g f
- coyonedaA :: (Category cat, ArrowApply arr, ArrowChoice arr) => arr (NatTransA arr (OpA cat a) f) (f a)
- unyonedaA :: (Category cat, ArrowApply arr) => arr (NatTransA arr (cat a) f) (f a)
- yonedaA :: (FunctorArrow f arr arr, ArrowApply arr) => f c -> NatTransA arr (arr c) f
- natTransToA :: (f :~> g) -> NatTransA (->) f g
- arrowNatTrans :: NatTransA (->) f g -> f :~> g
Documentation
newtype (f :: k -> *) :~> (g :: k -> *) Source #
NatTrans | |
|
failFailMT :: FailMT f Source #
succeedFailMT :: FailMT I Source #
unit_trans :: Adjunction f g => I :~> (g :*: f) Source #
counit_trans :: Adjunction f g => (f :*: g) :~> I Source #
map_natural_matrix :: (Functor f, Functor h) => (f :~> g) -> (h :~> i) -> (a -> b) -> (f :*: h) a -> (g :*: i) b Source #
mapMatrix :: (Functor f, Functor g) => (f :~> f') -> (g :~> g') -> (a -> b) -> (f :*: g) a -> (f' :*: g') b Source #
transform_map :: (Functor f, Functor g) => Coalgebra f a -> (f :~> g) -> Algebra g b -> a -> b Source #
yoneda_function :: Functor t => t a -> (->) a :~> t Source #
first_trans :: (y -> x) -> (->) (x, d) :~> (->) (y, d) Source #
swap_dimensions :: (Applicative g, Traversable f) => (f :*: g) :~> (g :*: f) Source #
NaturalIso | |
|
symmetricIso :: (g :<~>: f) -> f :<~>: g Source #
horizIso :: (Functor f, Functor f') => (f :<~>: f') -> (g :<~>: g') -> (f :*: g) :<~>: (f' :*: g') Source #
isoMatrix :: (Functor g, Functor g') => (f :<~>: (g :*: h)) -> (g :<~>: g') -> (h :<~>: h') -> f :<~>: (g' :*: h') Source #
isoMatrix_ :: Functor g' => (f :<~>: ((->) row :*: (->) col)) -> ((->) row :<~>: g') -> ((->) col :<~>: h') -> f :<~>: (g' :*: h') Source #
outerIso :: Functor g' => ((->) row :<~>: g') -> ((->) col :<~>: h') -> ((->) row :*: (->) col) :<~>: (g' :*: h') Source #
matrixFrom :: Functor g => (row -> col -> a) -> ((->) row :<~>: g) -> ((->) col :<~>: h) -> (g :*: h) a Source #
matrixIso :: (Functor f, Functor f', Functor g, Functor g') => (f :<~>: f') -> (g :<~>: g') -> (a :==: b) -> (f :*: g) a :==: (f' :*: g') b Source #
swap_dimensions_iso :: (Traversable f, Traversable g, Applicative f, Applicative g) => (f :*: g) :<~>: (g :*: f) Source #
runNaturalIso :: (f :<~>: g) -> f a :==: g a Source #
NaturalTrans | |
|
transform_matrix :: Applicative f' => ((f :~~> f') :*: g) a -> (f' :*: (g :~~> g')) a -> (f :*: g) a -> (f' :*: g') a Source #
newtype NaturalTransA (arr :: k -> k -> *) f g a Source #
NaturalTransA | |
|
newtype NatTransA (arr :: k -> k -> *) f g Source #
NatTransA | |
|
horizA :: (Arrow arr, FunctorArrow k arr arr) => NatTransA arr h k -> NatTransA arr f g -> NatTransA arr (h :*: f) (k :*: g) Source #
invertNatTransA :: NatTransA arr f g -> NatTransA (OpA arr) g f Source #
coyonedaA :: (Category cat, ArrowApply arr, ArrowChoice arr) => arr (NatTransA arr (OpA cat a) f) (f a) Source #
For exposition of coyonedaA, see Bartosz Milewski's youtube videos https://www.youtube.com/watch?v=p_ydgYm9-yg
yonedaA :: (FunctorArrow f arr arr, ArrowApply arr) => f c -> NatTransA arr (arr c) f Source #
natTransToA :: (f :~> g) -> NatTransA (->) f g Source #
arrowNatTrans :: NatTransA (->) f g -> f :~> g Source #