Maybe and Result: Taming Missing Data and Errors at Compile Time
2026-03-09 Keel Team 16 min read
Here is a confession. I once spent an entire afternoon hunting a bug in a data pipeline that turned out to be a single missing value. Not a crash, not an exception -- a quiet None that slipped...
typeslanguage-designdata-scienceerror-handlingpattern-matchingpythonRjulia
Inside Keel's Type Checker: How Types Actually Flow Through Your Code
2026-02-24 Keel Team 15 min read
We wrote a whole blog post/blog/the-type-system about what Keel's type system does for you. It was upbeat and reassuring. "The compiler catches your bugs!" "You can sleep at night!" All true. What...
internalstypestype-inferencecompiler
Why We Chose Rust to Build Keel (Honest Version)
2026-02-14 Keel Team 14 min read
There is a moment in every programming language project where you realize you have to pick a language to write the language in. It sounds like a zen riddle. It is not. It is a decision that will...
rustinternalslanguage-designtooling
From Source Code to Registers: Inside Keel's Bytecode VM
2026-02-04 Keel Team 15 min read
There is a moment in every language project when you realize "parsing is working, the type checker is catching real bugs, but actually running the code... that part still needs to happen." For us,...
internalscompilervmperformance
Pattern Matching: The Feature That Ruined Other Languages for Me
2026-01-21 Keel Team 11 min read
There is a moment, somewhere around your third data pipeline, when you realize that most of your code is just looking at a value and asking "what shape is this?" Is the list empty? Is the result an...
pattern-matchinglanguage-designtype-systemdata-science