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 : Metrics_coverage.coverage_metrics -> float
  val compute : libc:bool -> Metrics_coverage.coverage_metrics
  val compute_coverage_by_fun :
    Cil_datatype.Varinfo.Set.t ->
    (Cil_types.kernel_function * int * int * float) list
  class syntactic_printer :
    libc:bool ->
    Cil_datatype.Varinfo.Set.t ->
    object
      method pp_reached_from_function :
        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 : Format.formatter -> unit
      method pp_unreached_calls : Format.formatter -> unit
      method pp_value_coverage : Format.formatter -> unit
    end
end