A collection of practical recipes for typed functional data analysis in Morel — Julian Hyde's Standard ML interpreter with relational extensions.
This repo is not a tutorial, not a reference manual, not a language spec. It is a cookbook: 20 self-contained pages that each answer one concrete question a working data person might have. "How do I group and aggregate?" "How do I handle missing values?" "How do I define a metric once and reuse it?" Each recipe is short, runnable in the browser, and cross-linked to the handful of related ones.
Working data people — analysts, engineers, quants, actuaries — who already know their way around SQL or pandas and want to see what types, pattern matching, and relational composition in a real programming language can do for data work. No prior ML / Haskell / OCaml experience required. No theory about monads.
Planning and scaffolding documents at the top level, recipes in recipes/,
the Astro site (once it exists) in site/.
AGENTS.md— instructions for Claude Code or any agent working on this repo. Read this first.ROADMAP.md— phased plan from empty repo to launch.RECIPES.md— the 20-recipe outline, in order, with per-recipe notes.CONVENTIONS.md— recipe page template and editorial conventions. Follow these.ARCHITECTURE.md— tech stack, the Morel-in-browser plan, hosting.OPEN_QUESTIONS.md— things to verify about Morel 0.8 before committing to specific recipe designs.recipes/— recipe pages as they get written.
Pre-v1. Planning and scaffolding only. The site does not yet exist.
TBD. See ARCHITECTURE.md for the planned stack.
Pick an unwritten recipe from RECIPES.md, follow the template in
CONVENTIONS.md, open a PR. Small and opinionated beats big and bloated — a
cookbook page that tries to be a tutorial is a bad cookbook page.
Apache 2.0 — same as Morel itself.