The Comonad type-class is the dual of Monad. Whereas Monads
allow for the composition of effectful functions, Comonads allow
for composition of functions that extract the value from their
context.
The purpose of this type-class is to support the data-types in the
Monix library and it is considered a shim for a lawful type-class
to be supplied by libraries such as Cats or Scalaz or equivalent.
CREDITS: The type-class encoding has been inspired by the Scado
project and Scalaz 8 and
the type has been extracted from Cats.
The
Comonad
type-class is the dual of Monad. Whereas Monads allow for the composition of effectful functions, Comonads allow for composition of functions that extract the value from their context.To implement
Comonad
:The purpose of this type-class is to support the data-types in the Monix library and it is considered a shim for a lawful type-class to be supplied by libraries such as Cats or Scalaz or equivalent.
CREDITS: The type-class encoding has been inspired by the Scado project and Scalaz 8 and the type has been extracted from Cats.