A comonad is a triple (G,ε,δ) where: G:C→C is an endofunctor ε:G⇒IdC (counit) δ:G⇒G2 (comultiplication) Satisfying: Coassociativity: δ∘δ=Gδ∘δ Counit: Gε∘δ=idG=εG∘δ