//ww:run-exit 19 // Migrated from 700_e2e row 96. package main; type error = str; def eEOF: error = "eof"; def eShortRead: error = "short read"; fn read(n: i64) (i64 | error) = { if (n < 0) { return eEOF; }; if (n == 0) { return eShortRead; }; return n + 1; }; fn main() i32 = { let r0: (i64 | error) = read(0); let r1: (i64 | error) = read(-1); let r2: (i64 | error) = read(5); let acc: i32 = 0; match (r0) { case let v: i64 => acc += 100; case let e: error => acc += e.len: i32; }; match (r1) { case let v: i64 => acc += 100; case let e: error => acc += e.len: i32; }; match (r2) { case let v: i64 => acc += v: i32; case let e: error => acc += 100; }; return acc; };