sig
  val has_fundef : Cil_types.exp -> bool
  val check : Cil_types.kernel_function -> bool
  val instrument : Cil_types.kernel_function -> bool
  module RTL :
    sig
      val api_prefix : string
      val temporal_prefix : string
      val mk_api_name : string -> string
      val mk_gen_name : string -> string
      val is_generated_name : string -> bool
      val is_generated_kf : Cil_types.kernel_function -> bool
      val get_original_name : Cil_types.kernel_function -> string
    end
  module Libc :
    sig
      val has_replacement : string -> bool
      val replacement_name : string -> string
      val is_memcpy : Cil_types.exp -> bool
      val is_memset : Cil_types.exp -> bool
      val is_vla_free : Cil_types.exp -> bool
      val is_vla_free_name : string -> bool
      val is_vla_alloc_name : string -> bool
      val is_printf_name : string -> bool
      val get_printf_argument_str :
        loc:Cil_types.location ->
        string -> Cil_types.exp list -> Cil_types.exp
      val actual_alloca : string
    end
  module Concurrency :
    sig
      val has_replacement : string -> bool
      val replacement_name : string -> string
    end
end