diff --git a/lib/parse.ml b/lib/parse.ml index 3c822d2..d513fe9 100644 --- a/lib/parse.ml +++ b/lib/parse.ml @@ -333,6 +333,12 @@ and form f mk (head : Form.t) (args : Form.t list) : Ast.expr = the restart stack without committing to one. *) | "find-restart" | "compute-restarts" | "errdefer" | "with-allocator" | "loop" | "recur" + (* plan.org's loop story is settled as imperative while/for with these + two and [return]. Neither exists, and both *alter control flow* — + the first thing the house rule says must be recognised explicitly. + Falling through to Call answered "unknown function break", which + reads as a typo rather than as a missing feature. *) + | "break" | "continue" | "await" as name) -> fail f "%s is not implemented yet (see the build sequence in plan.org)" name