✓
Passing This code compiles and runs correctly.
Code
// Test: the equality atom reaches the SECOND consumer — `std/store` builds
// its insert guard through its own path (`store.new.kz`, not
// `facets.guardBody`), so an equality enforced at `push` is no evidence it
// is enforced at `insert`. `web.port: 8080` commits; `web.port: 80`
// produces into the branch carrying the column spelling.
//
// Expected: runs clean — `committed` then `rejected web.port`.
import std/proto
import std/refine
import std/store
import std/io
std/proto:i64(Port)
std/proto(Server) {
port: Port
}
std/refine(Server) {
port: Port & ==8080
}
std/store:new(fleet, capacity: 4) { web: Server }
std/store:insert(fleet) { web.port: 8080 }
| row r |> std/io:print.ln("committed")
std/store:insert(fleet) { web.port: 80 }
| violated f |> std/io:print.ln("rejected {{ f:s }}")
Actual
committed
rejected web.port
Expected output
committed
rejected web.port
Flows
flow ~i64 click a branch to expand · @labels scroll to their anchor
i64 (expr: Port)
flow ~std/proto click a branch to expand · @labels scroll to their anchor
std/proto (Server, source: port: Port)
flow ~std/refine click a branch to expand · @labels scroll to their anchor
std/refine (Server, source: port: Port & ==8080)
flow ~new click a branch to expand · @labels scroll to their anchor
new (fleet, capacity: 4, source: web: Server)
flow ~insert click a branch to expand · @labels scroll to their anchor
insert (fleet, source: web.port: 8080)
flow ~insert click a branch to expand · @labels scroll to their anchor
insert (fleet, source: web.port: 80)
Test Configuration
MUST_RUN