The Functional Programmer
- ocamlpro.com2026-09-14
A tour of the OCaml Workshop 2026
- anil.recoil.org2026-09-13
.plan-26-37: The humans aren't dead, the humans are ahead
- 2026-09-13· 8 min
Tail Calls
Which languages guarantee them, which only sometimes deliver them, how to check, and what to do when you do not have them.
- anil.recoil.org2026-09-11
Hitting a NERVE with attacks on AI-powered brain-computer interfaces
- anil.recoil.org2026-09-09
Open MPhil/Part II student projects for 2026-2027
- ocsigen.org2026-09-08
TyXML 5.0.0: the HTML living standard and SVG 2
- anil.recoil.org2026-09-06
.plan-26-36: Ground control to major MODIS
- 2026-09-06· 9 min
Introduction to Lean
A command-first tour of Lean 4: elan and lake, the goal state, the tactics worth knowing, and a proof by induction end to end.
- anil.recoil.org2026-08-31
Security scanning my own code with Scrutineer and local coding models
- anil.recoil.org2026-08-30
.plan-26-35: All I want for Tesseramas is (GP)U
- 2026-08-30· 9 min
Profiling GHC Programs
A command-first tour of the GHC profiler: +RTS -s, cost centres, heap profiles, info-table profiling, and the eventlog.
- anil.recoil.org2026-08-28
The 3rd Programming for the Planet 2026 videos are available
- anil.recoil.org2026-08-27
Celebrating a year of Tessera embeddings and releasing GeoTessera 0.10
- anil.recoil.org2026-08-23
.plan-26-34: Am I human or am I antibotty
- 2026-08-23· 7 min
Introduction to odoc
A command-first tour of OCaml documentation: doc comments, markup, cross-references, .mld pages, and publishing the result.
- anil.recoil.org2026-08-22
Just a rumour of a bug is enough to find a security exploit these days
- anil.recoil.org2026-08-16
Using Forester to turn Foundations of CS into interactive evergreen lectures
- anil.recoil.org2026-08-16
.plan-26-33: Zarro rides out and evidence papers pour in
- 2026-08-16· 8 min
Functional Programming in C++
Sum types, monadic optional and expected, lazy range pipelines, folds, composition, and persistent structures, in C++23.
- anil.recoil.org2026-08-13
Improving local weather forecasts using Tessera embeddings
- anil.recoil.org2026-08-09
.plan-26-32: Finally a use for serverless and found the Forester for the trees
- 2026-08-09· 7 min
Deriving Strategies in Haskell
A code-first tour of stock, newtype, anyclass, and via: what each one generates, and which to reach for.
- anil.recoil.org2026-08-08
Updating to the OxCaml 5.2.0-minus39 opam packaging
- anil.recoil.org2026-08-05
GetMOBILE article on benchmarking micro-NPUs now out
- anil.recoil.org2026-08-02
.plan-26-31: Sorting out Tessera and Evidence TAP infrastructure
- 2026-08-02· 9 min
Parsing with Menhir
A command-first tour of the OCaml parser generator: grammars, dune wiring, conflicts, parameterized rules, positions, and error messages.
- anil.recoil.org2026-07-26
.plan-26-30: Bananas ripen, models open, and OxCaml releases
- 2026-07-26· 5 min
Dockerizing OCaml Binaries
A command-first tour of packaging an OCaml binary into a small, reproducible image: multi-stage builds, musl/Alpine, and scratch.
- anil.recoil.org2026-07-19
.plan-26-29: Perfect weather, imperfectly measured, precisely predicted
- 2026-07-19· 8 min
Introduction to opam
A command-first tour of the OCaml package manager: switches, packages, pinning, dependencies, and publishing.
- anil.recoil.org2026-07-12
.plan-26-28: What fun papers piled up while I was out at sea
- 2026-07-12· 6 min
Effect Handlers in OCaml
A command-first tour of OCaml 5 effects: perform, handlers, generators, and where domains and eio fit in.
- anil.recoil.org2026-07-05
.plan-26-27: Somewhere over the icecap
- 2026-07-05· 7 min
Introduction to Dune
A command-first tour of the OCaml build system: history, libraries, opam, flags, flambda.
- ocsigen.org2026-07-01
Why Ocsigen decided not to switch from Lwt to Eio (for now)
- anil.recoil.org2026-06-28
.plan-26-26: Gelato, geospatial, and players of games
- 2026-06-28· 11 min
GADTs in OCaml
Making illegal states unrepresentable: typed expression evaluators, refined pattern matching, existentials, and a typed printf from scratch.
- anil.recoil.org2026-06-24
A scorching CNG London during Climate Action Week
- ocsigen.org2026-06-23
Ocsipersist 2.1.0: type-safe persistence with Deriving
- anil.recoil.org2026-06-21
.plan-26-25: Planetary scale plans, Windows file-descriptor scale problems
- 2026-06-21· 11 min
ppx in Practice
From ppxlib boilerplate to a working [%where] extension: AST traversal, deriver registration, error nodes, and reading generated code.
- ocsigen.org2026-06-19
Ocsigen in 2026: what we're working on
- anil.recoil.org2026-06-18
Sir David Attenborough joins us to celebrate the Cambridge Conservation Initiative
- anil.recoil.org2026-06-16
The Royal Society Environmental Prize lecture on feeding the world without costing the earth
- anil.recoil.org2026-06-14
Language integrated LLMs as an OCaml function
- anil.recoil.org2026-06-14
.plan-26-24: Apparently a professor now; still debugging io_uring at midnight
- ocsigen.org2026-06-14
A new home for the Ocsigen blog
- 2026-06-14· 12 min
Introduction to Alcotest
Test suites, expect tests and dune promote, cram tests, QCheck, code coverage with bisect_ppx, and CI, all in commands.
- anil.recoil.org2026-06-12
Tessera v1.1 released, with smoother and temporally stable embeddings
- anil.recoil.org2026-06-07
.plan-26-23: Earth Embeddings, Emails Everywhere, and ERRNOOOs
- ocsigen.org2026-06-07
Documenting OCaml projects with wodoc
- 2026-06-07· 13 min
C Interop in OCaml
The C FFI end to end in commands: raw stubs and the GC invariants, ctypes and foreign, callbacks, bigarrays, and profiling the boundary.