functor (Abstract : Abstractions.Eva->
  sig
    type state = Abstract.Dom.t
    type t
    val empty : Partition.MakeFlow.t
    val initial : Partition.MakeFlow.state list -> Partition.MakeFlow.t
    val to_list : Partition.MakeFlow.t -> Partition.MakeFlow.state list
    val of_partition :
      Partition.MakeFlow.state Partition.partition -> Partition.MakeFlow.t
    val to_partition :
      Partition.MakeFlow.t -> Partition.MakeFlow.state Partition.partition
    val is_empty : Partition.MakeFlow.t -> bool
    val size : Partition.MakeFlow.t -> int
    val union :
      Partition.MakeFlow.t -> Partition.MakeFlow.t -> Partition.MakeFlow.t
    val transfer_keys :
      Partition.MakeFlow.t -> Partition.action -> Partition.MakeFlow.t
    val transfer_states :
      (Partition.MakeFlow.state -> Partition.MakeFlow.state list) ->
      Partition.MakeFlow.t -> Partition.MakeFlow.t
    val iter :
      (Partition.MakeFlow.state -> unit) -> Partition.MakeFlow.t -> unit
    val filter_map :
      (Partition.key ->
       Partition.MakeFlow.state -> Partition.MakeFlow.state option) ->
      Partition.MakeFlow.t -> Partition.MakeFlow.t
    val join_duplicate_keys : Partition.MakeFlow.t -> Partition.MakeFlow.t
  end