NEW YORK · SECOND EDITION

Recursion2026

fix f = let x = f x in x

Two days of talks on Haskell, OCaml, proof assistants, and the compilers and runtimes underneath.

when
Thu 29 & Fri 30 October 2026, 08:30 - 18:30
where
429 11th Avenue, New York, NY 10001
tracks
Haskell · OCaml · proofs · compilers · practice
tickets
from $149 · early bird closes 30 Sep 2026

SUPPORTED BY

11 organizations

  • JetBrains
    JetBrains
  • Hudson River Trading
    Hudson River Trading
  • Optiver
    Optiver
  • Susquehanna International Group
    Susquehanna International Group
  • think-cell
    think-cell
  • Bright Data
    Bright Data
  • IBM
    IBM
  • AMD
    AMD
  • Google Cloud
    Google Cloud
  • Adobe
    Adobe
  • Red Hat
    Red Hat

“To iterate is human, to recurse divine.” - L. PETER DEUTSCH

§ 1

About The Conference

Second year. Roughly 300 people, one track at a time, no parallel sessions.

Recursion is a two-day conference for people who write functional code and maintain it afterward. Talks are selected for substance over polish: 39 sessions over two days, each grounded in something the speaker actually built, ran, or had to fix in production.

Sessions assume familiarity with the basics of the languages and tools involved, so speakers can spend their time on results and trade-offs rather than introductions.

The programme lists both days in full. If you have something to say, the call for proposals is open until 31 August.

Tickets start at $149. Talks are recorded and posted within 48 hours, captioned, with slides and links.

§ 2

Five tracks

  1. 01

    Haskell

    GHC internals, profiling, and effect systems. Several of these talks are about running Haskell in production rather than writing it.

    • ghc
    • laziness
    • effects
    • profiling
    -- fixed points, laziness, and the cost of both
    fix :: (a -> a) -> a
    fix f = let x = f x in x
  2. 02

    OCaml

    Multicore, effect handlers, and what the module system is good for beyond namespacing.

    • multicore
    • effects
    • functors
    • flambda
    (* effects, modules, and a compiler that finishes *)
    let rec fix f x = f (fix f) x
  3. 03

    Types & proofs

    Rocq, Lean, Agda, and which properties are worth proving, and which are cheaper to test.

    • lean
    • rocq
    • agda
    • refinement
    -- proofs that survive a refactor
    theorem fold_append : forall xs ys,
      fold (xs ++ ys) = fold xs <> fold ys
  4. 04

    Compilers & runtimes

    Intermediate representations, closure conversion, inlining decisions, and garbage collectors under sustained load.

    • anf
    • gc
    • jit
    • inlining
    -- what the allocator does at 3 a.m.
    data Value = Closure Env Term | Thunk (IO Value)
  5. 05

    Practice

    Hiring, onboarding, migrations, and incident reviews from teams running functional code.

    • production
    • hiring
    • incidents
    • migration
    -- functional programs that hold a pager
    type Handler = Request -> IO Response
§ 3

The programme

39 sessions
Day 01Thursday, 29 October 2026
  1. Registration & Morning Coffee
  2. 01
    Opening RemarksRachel Feinberg
  3. 02
    Laziness in Production: A Decade of GHC at ScaleOwen Fitzgerald
  4. Short Break
  5. 03
    Effect Handlers Without the Ceremony: A Practical Guide to OCaml 5 EffectsInes Callahan
  6. 04
    Refinement Types That Survive a RefactorDr. Femi Adeyemi
  7. 05
    Migrating 400k Lines of Python to Haskell Without Stopping the WorldRosa Bettencourt
  8. 06
    Strictness Analysis in the Wild: What GHC Still Gets WrongTobias Lindqvist
  9. 07
    Mechanizing Progress and Preservation for a Real Language, Not a Toy OneDr. Wren Ostrowski
  10. 08
    On-Call for a Pure Functional Backend: What Actually Pages UsMarcus Delacroix
  11. 09
    Lightning Talks - OCaml Track
  12. 10
    Lightning Talks - Types & Proofs Track
  13. 11
    Lightning Talks - Practice Track
  14. Lunch
  15. 12
    Compilers Are Just Programs: What Ten Years of Flambda Taught UsProf. Ingrid Halvorsen
  16. 13
    Streaming Without Leaks: A Field Guide to conduit and pipesMalik Thornbury
  17. 14
    Dependent Types for Working Programmers: Where Agda Earns Its KeepDr. Naledi Mokoena
  18. 15
    Functional Cores, Imperative Shells: A Decade LaterGrant Sorensen
  19. 16
    Arrows, Applicatives, and the Parser Combinator You Actually NeedCamille Duarte
  20. 17
    Verifying a Real Scheduler in Rocq: Six Months, One PropertyDr. Haruto Ishikawa
  21. 18
    Hiring Functional Programmers When Nobody AppliesOdalys Reyes
  22. Afternoon Break
  23. 19
    Is Purity Worth the Onboarding Cost?Dr. Wren Ostrowski, Owen Fitzgerald, Rosa Bettencourt, Prof. Ingrid Halvorsen, Devon Marchetti
  24. 20
    Day One Close & Community AnnouncementsRachel Feinberg
  25. Evening Reception - Foyer & Rooftop Terrace

20 sessions

Day 02Friday, 30 October 2026
  1. Morning Coffee
  2. 01
    What Standard ML Got Right (and Where We Went a Different Way)Prof. Dmitri Kowalczyk
  3. Short Break
  4. 02
    Row Polymorphism in OCaml: A Practical IntroductionAnya Petrosyan
  5. 03
    Cubical Type Theory Without the HeadacheDr. Kwame Boateng
  6. 04
    A Postmortem: The Day Our Thunks Ate All the MemoryLior Ben-David
  7. 05
    Effect Systems vs Monad Transformers: A Migration StorySofie Andersen
  8. 06
    Refinement Types in Production: Three Bugs They Actually CaughtDr. Chidi Nwosu
  9. 07
    Code Review for Functional Codebases: What We Look ForPetra Vaculik
  10. 08
    Building a Faster Package Resolver for the OCaml EcosystemJulius Reinholt
  11. 09
    Bidirectional Type Checking: A Tutorial for People Who Skipped the PaperDr. Miriam Solheim
  12. 10
    Three Years of Functional Programming Interviews: What We ChangedTariq Farouk
  13. Lunch
  14. 11
    Who Maintains the Compiler You Depend OnProf. Elena Marchetti-Voss
  15. 12
    Pattern Synonyms and the API You Wish You'd Designed FirstBram Van Doren
  16. 13
    Property-Based Testing as a Substitute for Proof (Sometimes)Dr. Adaeze Chukwu
  17. 14
    Cost Modeling for Lazy Evaluation: A Spreadsheet That Saved Us $40k/MonthNikolai Thorsen
  18. 15
    Inlining Decisions in GHC: Reading the Core Output So You Don't Have ToSachiko Mori
  19. 16
    What Agda's Termination Checker Rejects and Why It's Usually RightDr. Baraka Juma
  20. 17
    Incident Review: A Two-Hour Outage Caused by a Missing seqHelena Brandt
  21. Afternoon Break
  22. 18
    Where Is Functional Programming Going? A Disagreement About the Next Five YearsProf. Elena Marchetti-Voss, Prof. Dmitri Kowalczyk, Dr. Kwame Boateng, Sofie Andersen, Tariq Farouk, Nikolai Thorsen
  23. 19
    Closing Keynote: Staying Serious in a Hype CycleRachel Feinberg
  24. Conference Close

19 sessions

Everything is recorded.

§ 4

Send us one page.

One page about your talk, and a sentence about you.

the problem
what broke, or what you could not express
the evidence
what you measured, and with what
the turn
the thing you believed at the start and no longer do
the length
35 min · lightning (5 min, hard stop)
send a proposal

Closes 31 August 2026.

what happens to it1 / 3
review (submit yourTalk)-- submitting is the only side effect we ask for

Every proposal reaches the end of that trace.

§ 5

Colophon.

Type

Source Serif 4 and IBM Plex Mono.

Palette
  • #fff6f9
  • #ffc8dd
  • #ffafcc
  • #bde0fe
  • #a2d2ff