sig
  type slevel_annotation = SlevelMerge | SlevelDefault | SlevelLocal of int
  type unroll_annotation = Cil_types.term option
  type flow_annotation =
      FlowSplit of Cil_types.term
    | FlowMerge of Cil_types.term
  val get_slevel_annot :
    Cil_types.stmt -> Eva_annotations.slevel_annotation option
  val get_unroll_annot :
    Cil_types.stmt -> Eva_annotations.unroll_annotation list
  val get_flow_annot : Cil_types.stmt -> Eva_annotations.flow_annotation list
  val get_subdivision_annot : Cil_types.stmt -> int list
  val add_slevel_annot :
    emitter:Emitter.t ->
    loc:Cil_types.location ->
    Cil_types.stmt -> Eva_annotations.slevel_annotation -> unit
  val add_unroll_annot :
    emitter:Emitter.t ->
    loc:Cil_types.location ->
    Cil_types.stmt -> Eva_annotations.unroll_annotation -> unit
  val add_flow_annot :
    emitter:Emitter.t ->
    loc:Cil_types.location ->
    Cil_types.stmt -> Eva_annotations.flow_annotation -> unit
  val add_subdivision_annot :
    emitter:Emitter.t ->
    loc:Cil_types.location -> Cil_types.stmt -> int -> unit
end