Cofree comonads are coinductive, and in a general setting won’t necessarily have folds (because they’re nonterminating). In Haskell and similar languages, inductive and coinductive types coincide, so we don’t always notice this. The old Jacobs/Rutten tutorial might be of interest to you: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.37.1418
1 Like