sig
  val compute_syntactic :
    libc:bool -> Kernel_function.t -> Cil_datatype.Varinfo.Set.t
  val compute_semantic : libc:bool -> Cil_datatype.Varinfo.Set.t
  type coverage_metrics = {
    syntactic : Cil_datatype.Varinfo.Set.t;
    semantic : Cil_datatype.Varinfo.Set.t;
    initializers : (Cil_types.varinfo * Cil_types.init) list;
  }
  val percent_coverage :
    libc:bool -> Metrics_coverage.coverage_metrics -> float
  val compute : libc:bool -> Metrics_coverage.coverage_metrics
  val compute_coverage_by_fun : unit -> unit
  val get_coverage : Kernel_function.t -> int * int * float
  val is_computed_by_fun : unit -> bool
  val clear_coverage_by_fun : unit -> unit
  class syntactic_printer :
    libc:bool ->
    Cil_datatype.Varinfo.Set.t ->
    object
      method pp_reached_from_function :
        Stdlib.Format.formatter -> Kernel_function.t -> unit
    end
  class semantic_printer :
    libc:bool ->
    Metrics_coverage.coverage_metrics ->
    object
      method pp_reached_from_function :
        Format.formatter -> Kernel_function.t -> unit
      method pp_stmts_reached_by_function : Stdlib.Format.formatter -> unit
      method pp_unreached_calls : Stdlib.Format.formatter -> unit
      method pp_value_coverage : Stdlib.Format.formatter -> unit
    end
end