{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreideh25rrhfgexqxpunankav5so7f2xfcgokbzdjdlrtemqvs67pe4",
"uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mk2snnj3f6w2"
},
"path": "/t/the-hazy-haskell-compiler/13497?page=2#post_25",
"publishedAt": "2026-04-22T03:55:10.000Z",
"site": "https://discourse.haskell.org",
"textContent": "Today is my birthday and I’d figure I would celebrate by giving a progress report on Hazy.\n\nHere’s a quick list of what I’ve done over these past 3 months\n\n * Syntax sugar\n * Lambda expressions\n * Case expressions\n * Lambda case expressions\n * Let pattern binding\n * Integer literals\n * Floating point literals\n * Do notation\n * Right sections\n * Type annotation expressions\n * Language features\n * Default methods\n * Monomorphic generalization\n * Newtypes\n * Strict fields\n * Library / Tooling\n * A significant part of the Prelude has been implemented\n * A bare minimum package format for saving and loading sets of modules\n\n\n\nI also have another new extension: `LevityPolymorphicFields`. You can now parameterize a field by it’s strictness.\n\n\n type List :: Levity -> Type -> Type\n data List s a\n = Nil\n | Cons\n { head :: ~!s a,\n tail :: ~!s (List s a)\n }\n\n\nHere `List Strict a` would be a fully strict list while `List Lazy a` would be a lazy one. I have more details in my readme.\n\nOf course all of this isn’t enough for Hazy to be usable yet as there’s still some missing parts, but I am getting a lot closer.",
"title": "The Hazy Haskell Compiler"
}