original.name="RecursiveType_Valid_18"
======
>>> main.whiley
type State is {int[] input, int pos}
type Expr is {int num} | {int op, Expr rhs, Expr lhs} | {int[] err}
function parse(int[] input) -> Expr:
Expr e
State st
(e,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}
---