External Publication
Visit Post

The Hazy Haskell Compiler

Haskell Community [Unofficial] April 22, 2026
Source

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

Loading comments...