Class Clang__ast.mapreduce

constraint < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > = < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. >
inherit VisitorsRuntime.mapreduce
inherit base_mapreduce
method visit_qual_type : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> qual_type -> qual_type * 'e
method visit_Pointer : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> qual_type -> type_desc * 'e
method visit_ConstantArray : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> qual_type -> int -> type_desc * 'e
method visit_IncompleteArray : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> qual_type -> type_desc * 'e
method visit_VariableArray : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> qual_type -> expr -> type_desc * 'e
method visit_Elaborated : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e
method visit_Enum : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> label_ref -> type_desc * 'e
method visit_FunctionType : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> function_type -> type_desc * 'e
method visit_Record : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> label_ref -> type_desc * 'e
method visit_Typedef : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> label_ref -> type_desc * 'e
method visit_Complex : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> qual_type -> type_desc * 'e
method visit_ParenType : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> qual_type -> type_desc * 'e
method visit_BuiltinType : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> builtin_type -> type_desc * 'e
method visit_type_desc : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> type_desc -> type_desc * 'e
method visit_function_type : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> function_type -> function_type * 'e
method visit_args : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> args -> args * 'e
method visit_stmt : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> stmt -> stmt * 'e
method visit_Null : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> stmt_desc * 'e
method visit_Compound : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> stmt list -> stmt_desc * 'e
method visit_For : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e
method visit_If : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e
method visit_Switch : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e
method visit_Case : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> expr -> expr option -> stmt -> stmt_desc * 'e
method visit_Default : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> stmt -> stmt_desc * 'e
method visit_While : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e
method visit_Do : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> stmt -> expr -> stmt_desc * 'e
method visit_Label : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> label_ref -> stmt -> stmt_desc * 'e
method visit_Goto : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> label_ref -> stmt_desc * 'e
method visit_IndirectGoto : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> expr -> stmt_desc * 'e
method visit_Continue : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> stmt_desc * 'e
method visit_Break : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> stmt_desc * 'e
method visit_GCCAsm : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e
method visit_MSAsm : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> label_ref -> stmt_desc * 'e
method visit_Return : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> expr option -> stmt_desc * 'e
method visit_Decl : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> decl list -> stmt_desc * 'e
method visit_Expr : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> expr -> stmt_desc * 'e
method visit_OtherStmt : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> stmt_desc * 'e
method visit_stmt_desc : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> stmt_desc -> stmt_desc * 'e
method visit_expr : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> expr -> expr * 'e
method visit_IntegerLiteral : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> integer_literal -> expr_desc * 'e
method visit_FloatingLiteral : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> floating_literal -> expr_desc * 'e
method visit_StringLiteral : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> label_ref -> expr_desc * 'e
method visit_CharacterLiteral : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> character_kind -> int -> expr_desc * 'e
method visit_ImaginaryLiteral : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> expr -> expr_desc * 'e
method visit_UnaryOperator : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> unary_operator_kind -> expr -> expr_desc * 'e
method visit_BinaryOperator : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e
method visit_DeclRef : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> label_ref -> expr_desc * 'e
method visit_Call : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> expr -> expr list -> expr_desc * 'e
method visit_Cast : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e
method visit_Member : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e
method visit_ArraySubscript : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> expr -> expr -> expr_desc * 'e
method visit_ConditionalOperator : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> expr -> expr option -> expr -> expr_desc * 'e
method visit_Paren : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> expr -> expr_desc * 'e
method visit_AddrLabel : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> label_ref -> expr_desc * 'e
method visit_InitList : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> expr list -> expr_desc * 'e
method visit_CompoundLiteral : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> qual_type -> expr -> expr_desc * 'e
method visit_UnaryExpr : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e
method visit_UnexposedExpr : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> label_ref -> expr_desc * 'e
method visit_OtherExpr : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> expr_desc * 'e
method visit_expr_desc : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> expr_desc -> expr_desc * 'e
method visit_CStyle : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> cast_kind * 'e
method visit_Implicit : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> cast_kind * 'e
method visit_cast_kind : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> cast_kind -> cast_kind * 'e
method visit_ArgumentExpr : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> expr -> unary_expr_or_type_trait * 'e
method visit_ArgumentType : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> qual_type -> unary_expr_or_type_trait * 'e
method visit_unary_expr_or_type_trait : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e
method visit_decl : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> decl -> decl * 'e
method visit_Function : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e
method visit_Var : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> var_decl_desc -> decl_desc * 'e
method visit_EnumDecl : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> label_ref -> enum_constant list -> decl_desc * 'e
method visit_RecordDecl : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e
method visit_TypedefDecl : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> label_ref -> qual_type -> decl_desc * 'e
method visit_Field : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e
method visit_OtherDecl : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> decl_desc * 'e
method visit_decl_desc : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> decl_desc -> decl_desc * 'e
method visit_label_ref : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> label_ref -> label_ref * 'e
method visit_enum_constant : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> enum_constant -> enum_constant * 'e
method visit_enum_constant_desc : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> enum_constant_desc -> enum_constant_desc * 'e
method visit_var_decl : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> var_decl -> var_decl * 'e
method visit_var_decl_desc : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> var_decl_desc -> var_decl_desc * 'e
method visit_translation_unit : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e
method visit_translation_unit_desc : < visit_AddrLabel : 'd -> label_ref -> expr_desc * 'e; visit_ArgumentExpr : 'd -> expr -> unary_expr_or_type_trait * 'e; visit_ArgumentType : 'd -> qual_type -> unary_expr_or_type_trait * 'e; visit_ArraySubscript : 'd -> expr -> expr -> expr_desc * 'e; visit_BinaryOperator : 'd -> expr -> binary_operator_kind -> expr -> expr_desc * 'e; visit_Break : 'd -> stmt_desc * 'e; visit_BuiltinType : 'd -> builtin_type -> type_desc * 'e; visit_CStyle : 'd -> cast_kind * 'e; visit_Call : 'd -> expr -> expr list -> expr_desc * 'e; visit_Case : 'd -> expr -> expr option -> stmt -> stmt_desc * 'e; visit_Cast : 'd -> cast_kind -> qual_type -> expr -> expr_desc * 'e; visit_CharacterLiteral : 'd -> character_kind -> int -> expr_desc * 'e; visit_Complex : 'd -> qual_type -> type_desc * 'e; visit_Compound : 'd -> stmt list -> stmt_desc * 'e; visit_CompoundLiteral : 'd -> qual_type -> expr -> expr_desc * 'e; visit_ConditionalOperator : 'd -> expr -> expr option -> expr -> expr_desc * 'e; visit_ConstantArray : 'd -> qual_type -> int -> type_desc * 'e; visit_Continue : 'd -> stmt_desc * 'e; visit_Decl : 'd -> decl list -> stmt_desc * 'e; visit_DeclRef : 'd -> label_ref -> expr_desc * 'e; visit_Default : 'd -> stmt -> stmt_desc * 'e; visit_Do : 'd -> stmt -> expr -> stmt_desc * 'e; visit_Elaborated : 'd -> elaborated_type_keyword -> qual_type -> type_desc * 'e; visit_Enum : 'd -> label_ref -> type_desc * 'e; visit_EnumDecl : 'd -> label_ref -> enum_constant list -> decl_desc * 'e; visit_Expr : 'd -> expr -> stmt_desc * 'e; visit_Field : 'd -> label_ref -> qual_type -> expr option -> decl_desc * 'e; visit_FloatingLiteral : 'd -> floating_literal -> expr_desc * 'e; visit_For : 'd -> stmt option -> var_decl option -> expr option -> stmt option -> stmt -> stmt_desc * 'e; visit_Function : 'd -> Clang__bindings.cxlinkagekind -> function_type -> label_ref -> stmt option -> decl_desc * 'e; visit_FunctionType : 'd -> function_type -> type_desc * 'e; visit_GCCAsm : 'd -> label_ref -> (label_refqual_type) open_node list -> stmt_desc * 'e; visit_Goto : 'd -> label_ref -> stmt_desc * 'e; visit_If : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt option -> stmt_desc * 'e; visit_ImaginaryLiteral : 'd -> expr -> expr_desc * 'e; visit_Implicit : 'd -> cast_kind * 'e; visit_IncompleteArray : 'd -> qual_type -> type_desc * 'e; visit_IndirectGoto : 'd -> expr -> stmt_desc * 'e; visit_InitList : 'd -> expr list -> expr_desc * 'e; visit_IntegerLiteral : 'd -> integer_literal -> expr_desc * 'e; visit_Label : 'd -> label_ref -> stmt -> stmt_desc * 'e; visit_MSAsm : 'd -> label_ref -> stmt_desc * 'e; visit_Member : 'd -> expr -> bool -> (label_refqual_type) open_node -> expr_desc * 'e; visit_Null : 'd -> stmt_desc * 'e; visit_OtherDecl : 'd -> decl_desc * 'e; visit_OtherExpr : 'd -> expr_desc * 'e; visit_OtherStmt : 'd -> stmt_desc * 'e; visit_Paren : 'd -> expr -> expr_desc * 'e; visit_ParenType : 'd -> qual_type -> type_desc * 'e; visit_Pointer : 'd -> qual_type -> type_desc * 'e; visit_Record : 'd -> label_ref -> type_desc * 'e; visit_RecordDecl : 'd -> elaborated_type_keyword -> label_ref -> decl list -> decl_desc * 'e; visit_Return : 'd -> expr option -> stmt_desc * 'e; visit_StringLiteral : 'd -> label_ref -> expr_desc * 'e; visit_Switch : 'd -> stmt option -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_Typedef : 'd -> label_ref -> type_desc * 'e; visit_TypedefDecl : 'd -> label_ref -> qual_type -> decl_desc * 'e; visit_UnaryExpr : 'd -> unary_expr_kind -> unary_expr_or_type_trait -> expr_desc * 'e; visit_UnaryOperator : 'd -> unary_operator_kind -> expr -> expr_desc * 'e; visit_UnexposedExpr : 'd -> label_ref -> expr_desc * 'e; visit_Var : 'd -> var_decl_desc -> decl_desc * 'e; visit_VariableArray : 'd -> qual_type -> expr -> type_desc * 'e; visit_While : 'd -> var_decl option -> expr -> stmt -> stmt_desc * 'e; visit_args : 'd -> args -> args * 'e; visit_binary_operator_kind : env. 'env -> binary_operator_kind -> binary_operator_kind * 'e; visit_builtin_type : env. 'env -> builtin_type -> builtin_type * 'e; visit_cast_kind : 'd -> cast_kind -> cast_kind * 'e; visit_character_kind : env. 'env -> character_kind -> character_kind * 'e; visit_cxcallingconv : env. 'env -> Clang__bindings.cxcallingconv -> Clang__bindings.cxcallingconv * 'e; visit_cxlinkagekind : env. 'env -> Clang__bindings.cxlinkagekind -> Clang__bindings.cxlinkagekind * 'e; visit_decl : 'd -> decl -> decl * 'e; visit_decl_desc : 'd -> decl_desc -> decl_desc * 'e; visit_elaborated_type_keyword : env. 'env -> elaborated_type_keyword -> elaborated_type_keyword * 'e; visit_enum_constant : 'd -> enum_constant -> enum_constant * 'e; visit_enum_constant_desc : 'd -> enum_constant_desc -> enum_constant_desc * 'e; visit_expr : 'd -> expr -> expr * 'e; visit_expr_desc : 'd -> expr_desc -> expr_desc * 'e; visit_floating_literal : env. 'env -> floating_literal -> floating_literal * 'e; visit_function_type : 'd -> function_type -> function_type * 'e; visit_integer_literal : env. 'env -> integer_literal -> integer_literal * 'e; visit_label_ref : 'd -> label_ref -> label_ref * 'e; visit_open_node : env a qual_type. ('env -> 'a -> 'a * 'e) -> ('env -> 'qual_type -> 'qual_type * 'e) -> 'env -> ('a'qual_type) open_node -> ('a'qual_type) open_node * 'e; visit_qual_type : 'd -> qual_type -> qual_type * 'e; visit_stmt : 'd -> stmt -> stmt * 'e; visit_stmt_desc : 'd -> stmt_desc -> stmt_desc * 'e; visit_translation_unit : 'd -> (translation_unit_descqual_type) open_node -> (translation_unit_descqual_type) open_node * 'e; visit_translation_unit_desc : 'd -> translation_unit_desc -> translation_unit_desc * 'e; visit_type_desc : 'd -> type_desc -> type_desc * 'e; visit_unary_expr_kind : env. 'env -> unary_expr_kind -> unary_expr_kind * 'e; visit_unary_expr_or_type_trait : 'd -> unary_expr_or_type_trait -> unary_expr_or_type_trait * 'e; visit_unary_operator_kind : env. 'env -> unary_operator_kind -> unary_operator_kind * 'e; visit_var_decl : 'd -> var_decl -> var_decl * 'e; visit_var_decl_desc : 'd -> var_decl_desc -> var_decl_desc * 'e; .. > -> 'd -> translation_unit_desc -> translation_unit_desc * 'e