functor (Ast : Sig.Camlp4Ast->
  sig
    class clean_ast :
      object ('a)
        method binding : Ast.binding -> Ast.binding
        method class_expr : Ast.class_expr -> Ast.class_expr
        method class_sig_item : Ast.class_sig_item -> Ast.class_sig_item
        method class_str_item : Ast.class_str_item -> Ast.class_str_item
        method class_type : Ast.class_type -> Ast.class_type
        method ctyp : Ast.ctyp -> Ast.ctyp
        method direction_flag : Ast.direction_flag -> Ast.direction_flag
        method expr : Ast.expr -> Ast.expr
        method ident : Ast.ident -> Ast.ident
        method list : ('-> '-> 'c) -> 'b list -> 'c list
        method loc : Ast.loc -> Ast.loc
        method match_case : Ast.match_case -> Ast.match_case
        method meta_bool : Ast.meta_bool -> Ast.meta_bool
        method meta_list :
          ('-> '-> 'e) -> 'Ast.meta_list -> 'Ast.meta_list
        method meta_option :
          ('-> '-> 'g) -> 'Ast.meta_option -> 'Ast.meta_option
        method module_binding : Ast.module_binding -> Ast.module_binding
        method module_expr : Ast.module_expr -> Ast.module_expr
        method module_type : Ast.module_type -> Ast.module_type
        method mutable_flag : Ast.mutable_flag -> Ast.mutable_flag
        method override_flag : Ast.override_flag -> Ast.override_flag
        method patt : Ast.patt -> Ast.patt
        method private_flag : Ast.private_flag -> Ast.private_flag
        method rec_binding : Ast.rec_binding -> Ast.rec_binding
        method rec_flag : Ast.rec_flag -> Ast.rec_flag
        method row_var_flag : Ast.row_var_flag -> Ast.row_var_flag
        method sig_item : Ast.sig_item -> Ast.sig_item
        method str_item : Ast.str_item -> Ast.str_item
        method string : string -> string
        method unknown : '-> 'h
        method virtual_flag : Ast.virtual_flag -> Ast.virtual_flag
        method with_constr : Ast.with_constr -> Ast.with_constr
      end
  end