define function seq1 (#rest sub-rules) => (rule-parser :: ) local method foo (stream, context) values(if (context) #t end, #f, #t); end; foo; end; define constant program-parser-rule = seq1(parse-ablock); define function parse-program (stream, context) program-parser-rule(stream, context); end function; define constant ablock-parser-rule = seq1 (parse-ablock); define function parse-ablock (stream, context) let (prod, succb, err) = ablock-parser-rule (stream, context); succb := #f; values(#t, #t, #t); end function;