Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Synopsis
- class Functor w => Coapplicative w where
- class Functor w => Comonad w where
- class Comonad w => CircularComonad w where
- rotate :: w a -> w a
- class CircularComonad w => FiniteComonad w where
- inverseRotate :: w a -> w a
- class Comonad w => BinaryTreeComonad w where
- nextLevel :: w a -> (w a, w a)
- class Comonad w => TernaryTreeComonad w where
- nextLevel3 :: w a -> (w a, w a, w a)
- class Comonad w => ChainComonad w where
- coMonadChain :: w a -> Maybe (w a)
- class Comonad w => TreeComonad w where
- children :: w a -> [w a]
- class Comonad w => DenseComonad w where
- dense_comonad_split :: w a -> w (a, a)
- class Comonad w => NonemptyComonad w where
- class CircularComonad w => InfiniteComonad w where
- comonad_pre :: a -> w a -> w a
- class UncertainComonad w where
- preList :: (InfiniteComonad w, Foldable t) => t a -> w a -> w a
- indexComonad :: InfiniteComonad w => Integer -> w a -> a
- permute :: Comonad w => w a -> w a
- wmap :: Comonad w => (a -> b) -> w a -> w b
- class Reference w where
- dereference :: w a -> a
- invoke :: w a -> (w a -> b) -> w b
- new_reference :: w a -> b -> w b
- class Unique w where
- copy :: a -> (w a, a)
- class Continuation m where
- escape :: ((a -> m b) -> m a) -> m a
- data CoState s a = CoState (s -> a) s
- newtype CoKleisli w a b = CoKleisli {
- unCoKleisli :: w a -> b
- data Neg o a = Neg ((a -> o) -> o)
- evalC :: Neg o o -> o
- shiftC :: ((a -> Neg o o) -> Neg o o) -> Neg o a
- resetC :: Neg o o -> Neg o o
- liftC :: (a -> o) -> Neg o a -> Neg o o
Documentation
class Functor w => Coapplicative w where Source #
class Functor w => Comonad w where Source #
From youtube video "Category theory II 7.2: Comonads categorically and examples"
by Bartosz Milewski, comonad has a "focal point" defined by extract
operation,
and a mechanism for applying a cokleisli arrow to the whole environment
[e.g. if you give average to extend
, you'd smooth the whole data structure].
duplicate :: w a -> w (w a) Source #
extend :: (w a -> b) -> w a -> w b Source #
Instances
class Comonad w => CircularComonad w where Source #
class CircularComonad w => FiniteComonad w where Source #
inverseRotate :: w a -> w a Source #
Instances
FiniteComonad Vector3 Source # | |
Defined in Math.Matrix.Vector3 inverseRotate :: Vector3 a -> Vector3 a Source # |
class Comonad w => TernaryTreeComonad w where Source #
nextLevel3 :: w a -> (w a, w a, w a) Source #
class Comonad w => ChainComonad w where Source #
coMonadChain :: w a -> Maybe (w a) Source #
class Comonad w => DenseComonad w where Source #
dense_comonad_split :: w a -> w (a, a) Source #
class CircularComonad w => InfiniteComonad w where Source #
comonad_pre :: a -> w a -> w a Source #
Instances
InfiniteComonad Stream Source # | |
Defined in Math.Number.Stream comonad_pre :: a -> Stream a -> Stream a Source # |
preList :: (InfiniteComonad w, Foldable t) => t a -> w a -> w a Source #
indexComonad :: InfiniteComonad w => Integer -> w a -> a Source #
class Reference w where Source #
dereference :: w a -> a Source #
invoke :: w a -> (w a -> b) -> w b Source #
new_reference :: w a -> b -> w b Source #
class Continuation m where Source #
CoState (s -> a) s |
newtype CoKleisli w a b Source #
CoKleisli | |
|
Neg ((a -> o) -> o) |