// Path: src/stone/Parser.java
// public static Parser rule() { return rule(null); }
// 
// Path: src/stone/ast/Fun.java
// public class Fun extends ASTList {
//     public Fun(List<ASTree> c) { super(c); }
//     public ParameterList parameters() { return (ParameterList)child(0); }
//     public BlockStmnt body() { return (BlockStmnt)child(1); }
//     public String toString() {
//         return "(fun " + parameters() + " " + body() + ")";
//     }
// }


import static stone.Parser.rule;
import stone.ast.Fun;
package stone;

public class ClosureParser extends FuncParser {
    public ClosureParser() {
// Path: src/stone/Parser.java
// public static Parser rule() { return rule(null); }
// 
// Path: src/stone/ast/Fun.java
// public class Fun extends ASTList {
//     public Fun(List<ASTree> c) { super(c); }
//     public ParameterList parameters() { return (ParameterList)child(0); }
//     public BlockStmnt body() { return (BlockStmnt)child(1); }
//     public String toString() {
//         return "(fun " + parameters() + " " + body() + ")";
//     }
// }


// Path: src/stone/ClosureParser.java
import static stone.Parser.rule;
import stone.ast.Fun;

package stone;

public class ClosureParser extends FuncParser {
    public ClosureParser() {
        primary.insertChoice(rule(Fun.class)