sig
  type loop
  type state
  type store
  type propagation
  type shadow
  type widening
  val empty_store :
    stmt:Cil_types.stmt option -> State_partitioning.Partition.store
  val empty_propagation : unit -> State_partitioning.Partition.propagation
  val empty_shadow : unit -> State_partitioning.Partition.shadow
  val empty_widening :
    stmt:Cil_types.stmt option -> State_partitioning.Partition.widening
  val initial_propagation :
    State_partitioning.Partition.state list ->
    State_partitioning.Partition.propagation
  val pretty_store :
    Stdlib.Format.formatter -> State_partitioning.Partition.store -> unit
  val pretty_propagation :
    Stdlib.Format.formatter ->
    State_partitioning.Partition.propagation -> unit
  val expanded :
    State_partitioning.Partition.store ->
    State_partitioning.Partition.state list
  val smashed :
    State_partitioning.Partition.store ->
    State_partitioning.Partition.state Bottom.Type.or_bottom
  val is_empty_store : State_partitioning.Partition.store -> bool
  val is_empty_propagation : State_partitioning.Partition.propagation -> bool
  val is_empty_shadow : State_partitioning.Partition.shadow -> bool
  val store_size : State_partitioning.Partition.store -> int
  val propagation_size : State_partitioning.Partition.propagation -> int
  val reset_store : State_partitioning.Partition.store -> unit
  val reset_propagation : State_partitioning.Partition.propagation -> unit
  val reset_shadow : State_partitioning.Partition.shadow -> unit
  val reset_widening : State_partitioning.Partition.widening -> unit
  val enter_loop :
    State_partitioning.Partition.propagation ->
    State_partitioning.Partition.loop -> unit
  val leave_loop :
    State_partitioning.Partition.propagation ->
    State_partitioning.Partition.loop -> unit
  val next_loop_iteration :
    State_partitioning.Partition.propagation ->
    State_partitioning.Partition.loop -> unit
  val clear_propagation : State_partitioning.Partition.propagation -> unit
  val transfer :
    (State_partitioning.Partition.state list ->
     State_partitioning.Partition.state list) ->
    State_partitioning.Partition.propagation -> unit
  val merge :
    into:State_partitioning.Partition.propagation ->
    State_partitioning.Partition.propagation -> unit
  val join :
    (State_partitioning.Partition.propagation *
     State_partitioning.Partition.shadow)
    list ->
    State_partitioning.Partition.store ->
    State_partitioning.Partition.propagation
  val widen :
    State_partitioning.Partition.store ->
    State_partitioning.Partition.widening ->
    State_partitioning.Partition.propagation -> bool
end