Class Ast.reduce

constraint 'b = < visit_AddrLabel : 'c -> label_ref -> 'd; visit_ArgumentExpr : 'c -> expr -> 'd; visit_ArgumentType : 'c -> qual_type -> 'd; visit_ArraySubscript : 'c -> expr -> expr -> 'd; visit_BinaryOperator : 'c -> expr -> binary_operator_kind -> expr -> 'd; visit_Break : 'c -> 'd; visit_BuiltinType : 'c -> builtin_type -> 'd; visit_CStyle : 'c -> 'd; visit_Call : 'c -> expr -> expr list -> 'd; visit_Case : 'c -> expr -> expr option -> stmt -> 'd; visit_Cast : 'c -> cast_kind -> qual_type -> expr -> 'd; visit_CharacterLiteral : 'c -> character_kind -> int -> 'd; visit_Complex : 'c -> qual_type -> 'd; visit_Compound : 'c -> stmt list -> 'd; visit_CompoundLiteral : 'c -> qual_type -> expr -> 'd; visit_ConditionalOperator : 'c -> expr -> expr option -> expr -> 'd; visit_ConstantArray : 'c -> qual_type -> int -> 'd; visit_Continue : 'c -> 'd; visit_Decl : 'c -> decl list -> 'd; visit_DeclRef : 'c -> label_ref -> 'd; visit_Default : 'c -> stmt -> 'd; visit_Do : 'c -> stmt -> expr -> 'd; visit_Elaborated : 'c -> elaborated_type_keyword -> qual_type -> 'd; visit_Enum : 'c -> label_ref -> 'd; visit_EnumDecl : 'c -> label_ref -> enum_constant list -> 'd; visit_Expr : 'c -> expr -> 'd; visit_Field : 'c -> label_ref -> qual_type -> expr option -> 'd; visit_FloatingLiteral : 'c -> floating_literal -> 'd; visit_For : 'c -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> 'd; visit_Function : 'c -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> 'd; visit_FunctionType : 'c -> function_type -> 'd; visit_GCCAsm : 'c -> label_ref -> (label_refqual_type) open_node list -> 'd; visit_Goto : 'c -> label_ref -> 'd; visit_If : 'c -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> 'd; visit_ImaginaryLiteral : 'c -> expr -> 'd; visit_Implicit : 'c -> 'd; visit_IncompleteArray : 'c -> qual_type -> 'd; visit_IndirectGoto : 'c -> expr -> 'd; visit_InitList : 'c -> expr list -> 'd; visit_IntegerLiteral : 'c -> integer_literal -> 'd; visit_Label : 'c -> label_ref -> stmt -> 'd; visit_MSAsm : 'c -> label_ref -> 'd; visit_Member : 'c -> expr -> bool -> (label_refqual_type) open_node -> 'd; visit_Null : 'c -> 'd; visit_OtherDecl : 'c -> 'd; visit_OtherExpr : 'c -> 'd; visit_OtherStmt : 'c -> 'd; visit_Paren : 'c -> expr -> 'd; visit_ParenType : 'c -> qual_type -> 'd; visit_Pointer : 'c -> qual_type -> 'd; visit_Record : 'c -> label_ref -> 'd; visit_RecordDecl : 'c -> elaborated_type_keyword -> label_ref -> decl list -> 'd; visit_Return : 'c -> expr option -> 'd; visit_StringLiteral : 'c -> label_ref -> 'd; visit_Switch : 'c -> stmt option -> var_decl option -> expr -> stmt -> 'd; visit_Typedef : 'c -> label_ref -> 'd; visit_TypedefDecl : 'c -> label_ref -> qual_type -> 'd; visit_UnaryExpr : 'c -> unary_expr_kind -> unary_expr_or_type_trait -> 'd; visit_UnaryOperator : 'c -> unary_operator_kind -> expr -> 'd; visit_UnexposedExpr : 'c -> label_ref -> 'd; visit_Var : 'c -> var_decl_desc -> 'd; visit_VariableArray : 'c -> qual_type -> expr -> 'd; visit_While : 'c -> var_decl option -> expr -> stmt -> 'd; visit_args : 'c -> args -> 'd; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> 'd; visit_builtin_type : env. 'env -> builtin_type -> 'd; visit_cast_kind : 'c -> cast_kind -> 'd; visit_character_kind : env. 'env -> character_kind -> 'd; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> 'd; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> 'd; visit_decl : 'c -> decl -> 'd; visit_decl_desc : 'c -> decl_desc -> 'd; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> 'd; visit_enum_constant : 'c -> enum_constant -> 'd; visit_enum_constant_desc : 'c -> enum_constant_desc -> 'd; visit_expr : 'c -> expr -> 'd; visit_expr_desc : 'c -> expr_desc -> 'd; visit_floating_literal : env. 'env -> floating_literal -> 'd; visit_function_type : 'c -> function_type -> 'd; visit_integer_literal : env. 'env -> integer_literal -> 'd; visit_label_ref : 'c -> label_ref -> 'd; visit_open_node : env a qual_type. ('env -> 'a -> 'd) -> ('env -> 'qual_type -> 'd) -> 'env -> ('a'qual_type) open_node -> 'd; visit_qual_type : 'c -> qual_type -> 'd; visit_stmt : 'c -> stmt -> 'd; visit_stmt_desc : 'c -> stmt_desc -> 'd; visit_translation_unit : 'c -> (translation_unit_descqual_type) open_node -> 'd; visit_translation_unit_desc : 'c -> translation_unit_desc -> 'd; visit_type_desc : 'c -> type_desc -> 'd; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> 'd; visit_unary_expr_or_type_trait : 'c -> unary_expr_or_type_trait -> 'd; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> 'd; visit_var_decl : 'c -> var_decl -> 'd; visit_var_decl_desc : 'c -> var_decl_desc -> 'd; .. >
method private list_fold_left : env a. ('env -> 'a -> 'd) -> 'env -> 'd -> 'a list -> 'd
method private virtual plus : 'd -> 'd -> 'd
method visit_AddrLabel : 'c -> label_ref -> 'd
method visit_ArgumentExpr : 'c -> expr -> 'd
method visit_ArgumentType : 'c -> qual_type -> 'd
method visit_ArraySubscript : 'c -> expr -> expr -> 'd
method visit_BinaryOperator : 'c -> expr -> binary_operator_kind -> expr -> 'd
method visit_Break : 'c -> 'd
method visit_BuiltinType : 'c -> builtin_type -> 'd
method visit_CStyle : 'c -> 'd
method visit_Call : 'c -> expr -> expr list -> 'd
method visit_Case : 'c -> expr -> expr option -> stmt -> 'd
method visit_Cast : 'c -> cast_kind -> qual_type -> expr -> 'd
method visit_CharacterLiteral : 'c -> character_kind -> int -> 'd
method visit_Complex : 'c -> qual_type -> 'd
method visit_Compound : 'c -> stmt list -> 'd
method visit_CompoundLiteral : 'c -> qual_type -> expr -> 'd
method visit_ConditionalOperator : 'c -> expr -> expr option -> expr -> 'd
method visit_ConstantArray : 'c -> qual_type -> int -> 'd
method visit_Continue : 'c -> 'd
method visit_Decl : 'c -> decl list -> 'd
method visit_DeclRef : 'c -> label_ref -> 'd
method visit_Default : 'c -> stmt -> 'd
method visit_Do : 'c -> stmt -> expr -> 'd
method visit_Elaborated : 'c -> elaborated_type_keyword -> qual_type -> 'd
method visit_Enum : 'c -> label_ref -> 'd
method visit_EnumDecl : 'c -> label_ref -> enum_constant list -> 'd
method visit_Expr : 'c -> expr -> 'd
method visit_Field : 'c -> label_ref -> qual_type -> expr option -> 'd
method visit_FloatingLiteral : 'c -> floating_literal -> 'd
method visit_For : 'c -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> 'd
method visit_Function : 'c -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> 'd
method visit_FunctionType : 'c -> function_type -> 'd
method visit_GCCAsm : 'c -> label_ref -> (label_refqual_type) open_node list -> 'd
method visit_Goto : 'c -> label_ref -> 'd
method visit_If : 'c -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> 'd
method visit_ImaginaryLiteral : 'c -> expr -> 'd
method visit_Implicit : 'c -> 'd
method visit_IncompleteArray : 'c -> qual_type -> 'd
method visit_IndirectGoto : 'c -> expr -> 'd
method visit_InitList : 'c -> expr list -> 'd
method visit_IntegerLiteral : 'c -> integer_literal -> 'd
method visit_Label : 'c -> label_ref -> stmt -> 'd
method visit_MSAsm : 'c -> label_ref -> 'd
method visit_Member : 'c -> expr -> bool -> (label_refqual_type) open_node -> 'd
method visit_Null : 'c -> 'd
method visit_OtherDecl : 'c -> 'd
method visit_OtherExpr : 'c -> 'd
method visit_OtherStmt : 'c -> 'd
method visit_Paren : 'c -> expr -> 'd
method visit_ParenType : 'c -> qual_type -> 'd
method visit_Pointer : 'c -> qual_type -> 'd
method visit_Record : 'c -> label_ref -> 'd
method visit_RecordDecl : 'c -> elaborated_type_keyword -> label_ref -> decl list -> 'd
method visit_Return : 'c -> expr option -> 'd
method visit_StringLiteral : 'c -> label_ref -> 'd
method visit_Switch : 'c -> stmt option -> var_decl option -> expr -> stmt -> 'd
method visit_Typedef : 'c -> label_ref -> 'd
method visit_TypedefDecl : 'c -> label_ref -> qual_type -> 'd
method visit_UnaryExpr : 'c -> unary_expr_kind -> unary_expr_or_type_trait -> 'd
method visit_UnaryOperator : 'c -> unary_operator_kind -> expr -> 'd
method visit_UnexposedExpr : 'c -> label_ref -> 'd
method visit_Var : 'c -> var_decl_desc -> 'd
method visit_VariableArray : 'c -> qual_type -> expr -> 'd
method visit_While : 'c -> var_decl option -> expr -> stmt -> 'd
method visit_args : 'c -> args -> 'd
method private visit_array : env a. ('env -> 'a -> 'd) -> 'env -> 'a array -> 'd
method visit_binary_operator_kind : env. 'env -> binary_operator_kind -> 'd
method private visit_bool : env. 'env -> bool -> 'd
method visit_builtin_type : env. 'env -> builtin_type -> 'd
method private visit_bytes : env. 'env -> bytes -> 'd
method visit_cast_kind : 'c -> cast_kind -> 'd
method private visit_char : env. 'env -> char -> 'd
method visit_character_kind : env. 'env -> character_kind -> 'd
method visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> 'd
method visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> 'd
method visit_decl : 'c -> decl -> 'd
method visit_decl_desc : 'c -> decl_desc -> 'd
method visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> 'd
method visit_enum_constant : 'c -> enum_constant -> 'd
method visit_enum_constant_desc : 'c -> enum_constant_desc -> 'd
method visit_expr : 'c -> expr -> 'd
method visit_expr_desc : 'c -> expr_desc -> 'd
method private visit_float : env. 'env -> float -> 'd
method visit_floating_literal : env. 'env -> floating_literal -> 'd
method visit_function_type : 'c -> function_type -> 'd
method private visit_int : env. 'env -> int -> 'd
method private visit_int32 : env. 'env -> int32 -> 'd
method private visit_int64 : env. 'env -> int64 -> 'd
method visit_integer_literal : env. 'env -> integer_literal -> 'd
method visit_label_ref : 'c -> label_ref -> 'd
method private visit_lazy_t : env a. ('env -> 'a -> 'd) -> 'env -> 'a Lazy.t -> 'd
method private visit_list : env a. ('env -> 'a -> 'd) -> 'env -> 'a list -> 'd
method private visit_nativeint : env. 'env -> nativeint -> 'd
method visit_open_node : env a qual_type. ('env -> 'a -> 'd) -> ('env -> 'qual_type -> 'd) -> 'env -> ('a'qual_type) open_node -> 'd
method private visit_option : env a. ('env -> 'a -> 'd) -> 'env -> 'a option -> 'd
method visit_qual_type : 'c -> qual_type -> 'd
method private visit_ref : env a. ('env -> 'a -> 'd) -> 'env -> 'a Pervasives.ref -> 'd
method private visit_result : env a e. ('env -> 'a -> 'd) -> ('env -> 'e -> 'd) -> 'env -> ('a'e) Result.result -> 'd
method visit_stmt : 'c -> stmt -> 'd
method visit_stmt_desc : 'c -> stmt_desc -> 'd
method private visit_string : env. 'env -> label_ref -> 'd
method visit_translation_unit : 'c -> (translation_unit_descqual_type) open_node -> 'd
method visit_translation_unit_desc : 'c -> translation_unit_desc -> 'd
method visit_type_desc : 'c -> type_desc -> 'd
method visit_unary_expr_kind : env. 'env -> unary_expr_kind -> 'd
method visit_unary_expr_or_type_trait : 'c -> unary_expr_or_type_trait -> 'd
method visit_unary_operator_kind : env. 'env -> unary_operator_kind -> 'd
method private visit_unit : env. 'env -> unit -> 'd
method visit_var_decl : 'c -> var_decl -> 'd
method visit_var_decl_desc : 'c -> var_decl_desc -> 'd
method private virtual zero : 'd