Comonads são uma estrutura de dados presente em linguagens de programação funcional, como o Haskell. Elas permitem que você trabalhe com dados de forma similar a como as monads permitem trabalhar com efeitos laterais.Os comonads são muito úteis para modelar estruturas de dados que possuem um estado associado, como por exemplo, jogos de tabuleiro, redes neurais e outros. Eles são uma das ferramentas mais poderosas para criação de programas com efeitos laterais. 