Workspace Crates
19
Haskell Compiler • Rust Implementation
Haskeluya Chirho is an under-active-development compiler pipeline with real parsing, naming, kind inference, type inference, Core lowering, STG-style evaluation, LLVM IR emission, and WebAssembly output.
Workspace Crates
19
Rust LOC
103,066
Static Tests
1,565
Current State
Milestone
The foundations are not theoretical anymore. The repo is already executing real end-to-end compiler work, and the remaining push is quality, semantics, and integration depth.
Verified
The project currently holds together across the workspace, which matters more than any single flashy subsystem.
What Already Works
Parsing, lowering, typing, Core transforms, runtime evaluation, LLVM IR, and Wasm are all present in the codebase today.
Main Pressure
The next wins are parser robustness, warning propagation, cache reuse, and shrinking the giant files that now carry too much responsibility.
Pipeline
Lossless tokens, trivia, and virtual layout tokens for Haskell-style indentation.
Recursive-descent parsing into a green tree, then lowering into compiler-friendly AST structures.
Resolution across modules, imports, exports, qualified names, and interface-aware downstream compilation.
HM-style type inference with class machinery, deriving support, and exhaustiveness diagnostics layered into the pipeline.
Core lowering, dictionary passing, simplification, STG-style runtime evaluation, and backend lowering into LLVM IR and Wasm.
Workspace
Foundations
Frontend
Middle + Driver
Distribution
Why It Matters
The project is already past the stage where success means proving the idea. Success now means making the existing architecture harder to break, easier to evolve, and honest about what is stable versus experimental.
Phase boundaries are clearer, the driver has a shared frontend, the runtime is real, and the workspace has a large passing test corpus.
Parser malformed-input panics, warning results dropped by compile APIs, unfinished incremental-result reuse, and giant files that carry too much complexity.
More real-world package coverage, stronger runtime contracts, faster incremental builds, and clearer backend maturity tiers.
Roadmap
Now
Remove parser panic paths, surface warnings everywhere they matter, and close the artifact-cache loop.
Next
Expand module and package realism, keep pushing on typeclass and runtime semantics, and harden the compiler against uglier inputs.
Later
Keep LLVM, Wasm, Cranelift, JVM, and BEAM separated by actual maturity, not by wishful symmetry in the UI.