The Hazy Haskell Compiler
Haskell Community [Unofficial]
April 22, 2026
Today is my birthday and I’d figure I would celebrate by giving a progress report on Hazy.
Here’s a quick list of what I’ve done over these past 3 months
- Syntax sugar
- Lambda expressions
- Case expressions
- Lambda case expressions
- Let pattern binding
- Integer literals
- Floating point literals
- Do notation
- Right sections
- Type annotation expressions
- Language features
- Default methods
- Monomorphic generalization
- Newtypes
- Strict fields
- Library / Tooling
- A significant part of the Prelude has been implemented
- A bare minimum package format for saving and loading sets of modules
I also have another new extension: LevityPolymorphicFields. You can now parameterize a field by it’s strictness.
type List :: Levity -> Type -> Type
data List s a
= Nil
| Cons
{ head :: ~!s a,
tail :: ~!s (List s a)
}
Here 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.
Of 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.
Discussion in the ATmosphere