I write a lot of code in a lot of languages. Mostly functional ones (Standard ML, OCaml, Haskell, Clojure, Scala, Racket, Lisp, Elixir, F#), but also Rust, C, Python, Go, and TypeScript.
- Languages and type theory: Lisp/Scheme interpreters, parser combinators, regex engines, esolangs, a small SQL engine, a self-hosting dependently-typed language, and machine-checked proofs in Lean 4.
- Machine learning: GPT-2 inference written from scratch (including in pure Standard ML), reverse-mode autodiff, and a multi-agent coding agent.
- Cryptography and Bitcoin: hashes, ciphers, AEAD, elliptic curves, signatures, and Bitcoin/Ethereum primitives.
- Systems: codecs, compression, a hypergraph rewriting engine, an acoustic modem (data over sound), and tooling in Rust and C.
- Games: libraries and prototypes with raylib (C), phaser (TS/JS), love2d, and a few hand-rolled engines (ECS, pathfinding, collision, FOV).
- Classics and writing: interlinear Latin, Greek, and Old English, plus longform writing in TeX.
- forge — an autonomous coding agent on a multi-agent LangGraph orchestrator, built around outcome-honesty invariants and baseline-aware merge gates.
- blight — a self-hosting, dependently-typed language with a tiny trusted kernel (cubical + quantitative types + effects), in Rust.
- multiway — a multiway hypergraph rewriting engine with e-graph-style state sharing; zero dependencies, deterministic to the byte.
- sonance — an adaptive acoustic modem in Rust (OFDM, LDPC, fountain codes).
- raydial and raypals — raylib libraries for dialogue boxes and sprites (C).
- chinalang — an esoteric language with Chinese keywords and Lisp-style macros; tree-walking interpreter in Go.
- lean-* — verified data structures and algorithms in Lean 4 (red-black trees, ROBDDs, union-find, DFA/NFA, DPLL), each with machine-checked proofs.
I maintain more than 360 pure Standard ML libraries. They have no external dependencies, run on both MLton and Poly/ML, and are tested against the relevant RFC/spec vectors — many are byte-identical across the two compilers.
A rough map of the collection:
- Math, numeric & scientific:
sml-matrix,sml-rational,sml-tensor,sml-pde,sml-kalman - Cryptography & Bitcoin:
sml-secp256k1,sml-ed25519,sml-aes,sml-aead,sml-rsa,sml-merkle - Encoding & serialization:
sml-json,sml-cbor,sml-asn1, plus codecs and compression - Web & networking:
sml-http,sml-router,sml-jwt,sml-ws,sml-tls - Parsing & languages:
sml-parsec, and a Standard ML toolchain written in Standard ML —sml-mlast,sml-elab,sml-lsp,sml-lint,sml-fmt,sml-pkg - Logic & proofs:
sml-sat,sml-smt,sml-bdd,sml-hm - Machine learning: GPT-2 in pure SML —
sml-gpt,sml-transformer,sml-bytebpe,sml-safetensors,sml-nn - Data structures:
sml-graph,sml-rope,sml-crdt - Graphics & UI: a self-drawn immediate-mode GUI (
sml-ui) that opens a real desktop window (sml-window)
…plus games, databases, information retrieval, audio, and more.
awesome-standard-ml is a curated index of the whole ecosystem.





