✓
Passing This code compiles and runs correctly.
Code
// PINS: a REQUIRED param that nothing can fill is a HARD KORU error, never a
// silent void-fill and never a Zig leak. `render-at` requires `text`; the only
// binding in scope is `count` (i64), and the thread `tick` produces is an i64
// too. No name matches, no type matches — so the refusal must be a koru
// sentence naming the parameter and its type (KORU092), at the boundary.
//
// The two implicit fills both have to miss for this to be the pin it is: the
// bind-pun misses because nothing is NAMED `text`, and the point-free thread
// misses because nothing in `render-at` is TYPED i64 once `x` is written.
const std = @import("std");
~tor tick {} -> i64
~proc tick|zig { return 1; }
~tor render-at { x: i64, text: string }
~proc render-at|zig { std.debug.print("{d}:{s}\n", .{ x, text }); }
~tick(): count |> render-at(x: 5)
Must fail at frontend compile:
Parsing or type-checking must reject the program.
Flows
flow ~tick click a branch to expand · @labels scroll to their anchor
tick
Test Configuration
Expected Error:
KORU092