"For God so loved the world, that He gave His only begotten Son, that all who believe in Him should not perish but have everlasting life." -- John 3:16
A Haskell compiler written in Rust
Cranelift default backend. No LLVM required. WebAssembly built-in.
91.8% GHC test-suite compatibility. Faster than GHC.
A modern Haskell compiler designed for developer experience and performance.
Cranelift as the default backend means zero external dependencies. Install and compile immediately -- no LLVM toolchain setup, no version mismatches, no headaches.
Opt in to the LLVM backend for maximum optimization. Production builds benefit from LLVM 18 without forcing it on every developer.
First-class Wasm target. Compile your Haskell to run in browsers, serverless edges, and embedded environments without any extra tooling.
91.8% compatibility with the GHC test suite. Type classes, GADTs, RankNTypes, ScopedTypeVariables, Template Haskell, and dozens more extensions.
Memory-safe compiler infrastructure with predictable performance. No runtime GC pauses in the compiler itself. Fast incremental builds.
Mark-sweep garbage collector via a Rust-based runtime system. Heap allocation tracking, automatic collection, and C ABI interop out of the box.
fib(40) benchmark -- compiled output runtime
Lower is better. Cranelift compiles 4x faster than LLVM with comparable runtime performance.
Up and running in seconds.
# Install Haskelujah
$ curl -fsSL https://haskelujah.org/install-chirho.sh | sh
# Create a new project
$ haskelujah init my-project
Created my-project/
Created my-project/Main.hs
Created my-project/haskelujah.toml
# Build and run
$ haskelujah build-run .
Compiling Main.hs ... done (0.04s)
Hello, world!
module Main where
-- Fibonacci with pattern matching and guards
fib :: Int -> Int
fib 0 = 0
fib 1 = 1
fib n = fib (n - 1) + fib (n - 2)
main :: IO ()
main = putStrLn ("fib 40 = " ++ show (fib 40))
21 focused Rust crates. 12-phase compilation pipeline.