sig
  module type T_RemoveInfo =
    sig
      exception EraseAssigns
      type t_proj
      type t_fct
      val fct_info :
        Filter.T_RemoveInfo.t_proj ->
        Cil_types.kernel_function -> Filter.T_RemoveInfo.t_fct list
      val fct_name : Cil_types.varinfo -> Filter.T_RemoveInfo.t_fct -> string
      val param_visible : Filter.T_RemoveInfo.t_fct -> int -> bool
      val body_visible : Filter.T_RemoveInfo.t_fct -> bool
      val loc_var_visible :
        Filter.T_RemoveInfo.t_fct -> Cil_types.varinfo -> bool
      val inst_visible : Filter.T_RemoveInfo.t_fct -> Cil_types.stmt -> bool
      val label_visible :
        Filter.T_RemoveInfo.t_fct ->
        Cil_types.stmt -> Cil_types.label -> bool
      val annotation_visible :
        Filter.T_RemoveInfo.t_fct ->
        Cil_types.stmt -> Cil_types.code_annotation -> bool
      val fun_precond_visible :
        Filter.T_RemoveInfo.t_fct -> Cil_types.predicate -> bool
      val fun_postcond_visible :
        Filter.T_RemoveInfo.t_fct -> Cil_types.predicate -> bool
      val fun_variant_visible :
        Filter.T_RemoveInfo.t_fct -> Cil_types.term -> bool
      val fun_assign_visible :
        Filter.T_RemoveInfo.t_fct ->
        Cil_types.identified_term Cil_types.from -> bool
      val fun_deps_visible :
        Filter.T_RemoveInfo.t_fct -> Cil_types.identified_term -> bool
      val called_info :
        Filter.T_RemoveInfo.t_proj * Filter.T_RemoveInfo.t_fct ->
        Cil_types.stmt ->
        (Cil_types.kernel_function * Filter.T_RemoveInfo.t_fct) option
      val res_call_visible :
        Filter.T_RemoveInfo.t_fct -> Cil_types.stmt -> bool
      val result_visible :
        Cil_types.kernel_function -> Filter.T_RemoveInfo.t_fct -> bool
    end
  module F :
    functor (Info : T_RemoveInfo->
      sig val build_cil_file : string -> Info.t_proj -> Project.t end
end