//ww:run-exit 2 package main; type invalid = !void; fn validate(s: str) (void | invalid) = { return; }; fn fromutf8(s: str) (str | invalid) = { let v: (void | invalid) = validate(s); match (v) { case void => return s; case let e: invalid => return e; }; let e: invalid; return e; }; fn main() i32 = { match (fromutf8("hi")) { case let s: str => return s.len: i32; case invalid => return -1; }; return 0; };