higher_cat/
comonad.rs

1use crate::{Extend, Extract};
2
3/// A `Comonad` is the opposite of a `Monad`, and also anything which implements
4/// `Extend` and `Extract`.
5pub trait Comonad<A, B>: Extend<A, B> + Extract<A> {}
6
7impl<W, A, B> Comonad<A, B> for W where W: Extend<A, B> + Extract<A> {}