✓
Passing This code compiles and runs correctly.
Code
// std/sym rung 3 — named refusals and the taint boundary: outside text rides
// <sexpr-external!> until parse discharges it; div by a zero canon and a
// negative-decimal radicand refuse on named arms, never silently.
import std/io
import std/sym
std/sym:ingest(s: "π*e"): x |> std/sym:parse(s: x)
| exact r |> std/io:print.ln("{{ r:s }}") |> std/sym:free(n: r)
| bad b
std/sym:ingest(s: "not-an-expr!!"): x |> std/sym:parse(s: x)
| exact r |> std/io:print.ln("{{ r:s }}") |> std/sym:free(n: r)
| bad b |> std/io:print.ln("sym:parse bad")
std/sym:lit(5)
| exact a |> std/sym:lit(0)
| exact b |> std/sym:div(a, b)
| exact r |> std/io:print.ln("{{ r:s }}") |> std/sym:free(n: r)
| div-zero |> std/io:print.ln("sym:div-zero")
| bad |> std/io:print.ln("bad2") |> std/sym:free(n: a)
| bad |> std/io:print.ln("bad")
std/sym:lit(-4)
| exact a |> std/sym:sqrt(a)
| exact r |> std/io:print.ln("{{ r:s }}") |> std/sym:free(n: r)
| neg-root |> std/io:print.ln("sym:neg-root")
| bad |> std/io:print.ln("bad")
std/sym:lit(4)
| exact a |> std/sym:sqrt(a)
| exact r |> std/io:print.ln("{{ r:s }}") |> std/sym:free(n: r)
| neg-root |> std/io:print.ln("nr")
| bad |> std/io:print.ln("bad")
std/sym:lit(√(2))
| exact a |> std/sym:neg(a): r |> std/io:print.ln("{{ r:s }}") |> std/sym:free(n: r)
| bad |> std/io:print.ln("bad")
Actual
(e*π)
sym:parse bad
sym:div-zero
sym:neg-root
2e0
(-1e0*√(2e0))
Expected output
(e*π)
sym:parse bad
sym:div-zero
sym:neg-root
2e0
(-1e0*√(2e0))
Flows
flow ~ingest click a branch to expand · @labels scroll to their anchor
ingest (s: "π*e")
flow ~ingest click a branch to expand · @labels scroll to their anchor
ingest (s: "not-an-expr!!")
flow ~lit click a branch to expand · @labels scroll to their anchor
lit (expr: 5)
flow ~lit click a branch to expand · @labels scroll to their anchor
lit (expr: -4)
flow ~lit click a branch to expand · @labels scroll to their anchor
lit (expr: 4)
flow ~lit click a branch to expand · @labels scroll to their anchor
lit (expr: √(2))
Test Configuration
MUST_RUN