{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreigk7cot7uvjgiwxqg7c5tyt4ytqncceqokkqiebbibf3lz4rfr25m",
"uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mmoh5geah5r2"
},
"path": "/t/lazily-consuming-a-self-referential-linked-list/14131#post_16",
"publishedAt": "2026-05-25T11:05:12.000Z",
"site": "https://discourse.haskell.org",
"tags": [
"what (co-)algebras are",
"in the git repository",
"(click for more details)",
"the standard WorkList is not nearly as parametric"
],
"textContent": "yanhu:\n\n> If you tease the type a bit you end up with a co-algebra:\n\nThanks for all the fancy words, made me look up and learn what (co-)algebras are.\n\nyanhu:\n\n> What you have then described seems to be a at least a monadic anamorphism\n\nThis is roughly where I got lost, what is a monadic anamorphism?\n\nyanhu:\n\n> Mind if you share your new definitions of `WorkList.run` and friends?\n\nNot at all, you can find the entire source code in the git repository.\n\nThe base definition is very involved, because I added support for Prioritizable Tasks:\n\nWorkListT (click for more details)\n\nBut all the type tetris is not visible anyway unless you need to build something custom, the interface for the standard WorkList is not nearly as parametric:",
"title": "Lazily consuming a self-referential linked list"
}