import lexer_example
@with_lexer(foo_lexer)
grammar foo_grammar {
    @main_rule main_rule <- list+(Example("example"))

}

@abstract class FooNode : Node {

    @export fun rebind (from_node : FooNode, to_node : FooNode): FooNode = {
        val rbdng = self.info.rebindings.append_rebinding(
            from_node.children_env(), to_node.children_env()
        );
        val e_info = EntityInfo(
            md=self.info.md, rebindings=rbdng, from_rebound=false
        );

        FooNode(node=node, info=e_info)
    }
}

class Example : FooNode implements TokenNode {
}
