original.name="RecursiveType_Valid_17" ====== >>> main.whiley type State is ({int[] input, int pos} s) where (s.pos >= 0) && (s.pos <= |s.input|) type Expr is {int num} | {int op, Expr rhs, Expr lhs} | {int[] err} function parse(int[] input) -> Expr: (Expr e, State st) = parseAddSubExpr({input: input, pos: 0}) return e function parseAddSubExpr(State st) -> (Expr e, State nst): return {num: 1}, st public export method test() : Expr e = parse("Hello") assume e == {num:1} ---