public static final class $bag_native extends SubLStructNative {
    public SubLStructDecl getStructDecl() {
      return structDecl;
    }

    public SubLObject getField2() {
      return $unique_contents;
    }

    public SubLObject getField3() {
      return $repeat_contents;
    }

    public SubLObject getField4() {
      return $repeat_size;
    }

    public SubLObject getField5() {
      return $test;
    }

    public SubLObject setField2(SubLObject value) {
      return $unique_contents = value;
    }

    public SubLObject setField3(SubLObject value) {
      return $repeat_contents = value;
    }

    public SubLObject setField4(SubLObject value) {
      return $repeat_size = value;
    }

    public SubLObject setField5(SubLObject value) {
      return $test = value;
    }

    public SubLObject $unique_contents = NIL;
    public SubLObject $repeat_contents = NIL;
    public SubLObject $repeat_size = NIL;
    public SubLObject $test = NIL;
    private static final SubLStructDeclNative structDecl =
        Structures.makeStructDeclNative(
            $bag_native.class,
            $sym0$BAG,
            $sym1$BAG_P,
            $list3,
            $list4,
            new String[] {"$unique_contents", "$repeat_contents", "$repeat_size", "$test"},
            $list5,
            $list6,
            $sym7$PRINT_BAG);
  }
  public static final class $hierarchical_visitor_native extends SubLStructNative {
    public SubLStructDecl getStructDecl() {
      return structDecl;
    }

    public SubLObject getField2() {
      return $begin_path_fn;
    }

    public SubLObject getField3() {
      return $end_path_fn;
    }

    public SubLObject getField4() {
      return $accept_node_fn;
    }

    public SubLObject getField5() {
      return $begin_visit_fn;
    }

    public SubLObject getField6() {
      return $end_visit_fn;
    }

    public SubLObject getField7() {
      return $param;
    }

    public SubLObject setField2(SubLObject value) {
      return $begin_path_fn = value;
    }

    public SubLObject setField3(SubLObject value) {
      return $end_path_fn = value;
    }

    public SubLObject setField4(SubLObject value) {
      return $accept_node_fn = value;
    }

    public SubLObject setField5(SubLObject value) {
      return $begin_visit_fn = value;
    }

    public SubLObject setField6(SubLObject value) {
      return $end_visit_fn = value;
    }

    public SubLObject setField7(SubLObject value) {
      return $param = value;
    }

    public SubLObject $begin_path_fn = NIL;
    public SubLObject $end_path_fn = NIL;
    public SubLObject $accept_node_fn = NIL;
    public SubLObject $begin_visit_fn = NIL;
    public SubLObject $end_visit_fn = NIL;
    public SubLObject $param = NIL;
    private static final SubLStructDeclNative structDecl =
        Structures.makeStructDeclNative(
            $hierarchical_visitor_native.class,
            $sym1$HIERARCHICAL_VISITOR,
            $sym2$HIERARCHICAL_VISITOR_P,
            $list3,
            $list4,
            new String[] {
              "$begin_path_fn",
              "$end_path_fn",
              "$accept_node_fn",
              "$begin_visit_fn",
              "$end_visit_fn",
              "$param"
            },
            $list5,
            $list6,
            $sym7$PRINT_HIERACHICAL_VISITOR);
  }
  public static final class $simple_lru_cache_strategy_native extends SubLStructNative {
    public SubLStructDecl getStructDecl() {
      return structDecl;
    }

    public SubLObject getField2() {
      return $capacity;
    }

    public SubLObject getField3() {
      return $index;
    }

    public SubLObject getField4() {
      return $payload;
    }

    public SubLObject getField5() {
      return $head;
    }

    public SubLObject getField6() {
      return $tail;
    }

    public SubLObject getField7() {
      return $freelist_head;
    }

    public SubLObject getField8() {
      return $metrics;
    }

    public SubLObject setField2(SubLObject value) {
      return $capacity = value;
    }

    public SubLObject setField3(SubLObject value) {
      return $index = value;
    }

    public SubLObject setField4(SubLObject value) {
      return $payload = value;
    }

    public SubLObject setField5(SubLObject value) {
      return $head = value;
    }

    public SubLObject setField6(SubLObject value) {
      return $tail = value;
    }

    public SubLObject setField7(SubLObject value) {
      return $freelist_head = value;
    }

    public SubLObject setField8(SubLObject value) {
      return $metrics = value;
    }

    public SubLObject $capacity = NIL;
    public SubLObject $index = NIL;
    public SubLObject $payload = NIL;
    public SubLObject $head = NIL;
    public SubLObject $tail = NIL;
    public SubLObject $freelist_head = NIL;
    public SubLObject $metrics = NIL;
    private static final SubLStructDeclNative structDecl =
        Structures.makeStructDeclNative(
            $simple_lru_cache_strategy_native.class,
            $sym0$SIMPLE_LRU_CACHE_STRATEGY,
            $sym1$SIMPLE_LRU_CACHE_STRATEGY_P,
            $list2,
            $list3,
            new String[] {
              "$capacity", "$index", "$payload", "$head", "$tail", "$freelist_head", "$metrics"
            },
            $list4,
            $list5,
            $sym6$PRINT_SIMPLE_LRU_CACHE_STRATEGY);
  }