Provides comonads, the categorical dual of monads
