functor (X : MakePostDomArg->
  sig
    module PostDom :
      sig
        val self : State.t
        val name : string
        val mark_as_computed : ?project:Project.t -> unit -> unit
        val is_computed : ?project:Project.t -> unit -> bool
        module Datatype : Datatype.S
        val add_hook_on_update : (Datatype.t -> unit) -> unit
        val howto_marshal : (Datatype.t -> 'a) -> ('-> Datatype.t) -> unit
        type key = Cil_types.stmt
        type data = DomSet.t
        val replace : key -> data -> unit
        val add : key -> data -> unit
        val clear : unit -> unit
        val length : unit -> int
        val iter : (key -> data -> unit) -> unit
        val iter_sorted :
          ?cmp:(key -> key -> int) -> (key -> data -> unit) -> unit
        val fold : (key -> data -> '-> 'a) -> '-> 'a
        val fold_sorted :
          ?cmp:(key -> key -> int) -> (key -> data -> '-> 'a) -> '-> 'a
        val memo : ?change:(data -> data) -> (key -> data) -> key -> data
        val find : key -> data
        val find_all : key -> data list
        val mem : key -> bool
        val remove : key -> unit
      end
    module PostComputer :
      sig
        val name : string
        val debug : bool
        type t = Compute.DomSet.t
        module StmtStartData = PostDom
        val pretty : Format.formatter -> Compute.DomSet.t -> unit
        val combineStmtStartData :
          '->
          old:Compute.DomSet.t -> Compute.DomSet.t -> Compute.DomSet.t option
        val combineSuccessors :
          Compute.DomSet.domset ->
          Compute.DomSet.domset -> Compute.DomSet.domset
        val doStmt :
          Cil_datatype.Stmt.Hptset.elt ->
          Compute.DomSet.domset Dataflow2.action
        val doInstr : '-> '-> '-> 'Dataflow2.action
        val filterIf : Cil_types.stmt -> Cil_datatype.Stmt.t -> bool
        val filterStmt : Cil_types.stmt -> Cil_datatype.Stmt.t -> bool
        val funcExitData : Compute.DomSet.domset
      end
    module PostCompute : sig val compute : Cil_types.stmt list -> unit end
    val compute_postdom : Kernel_function.t -> unit
    val get_stmt_postdominators :
      Kernel_function.t ->
      Compute.MakePostDom.PostDom.key -> Compute.MakePostDom.PostDom.data
    val stmt_postdominators :
      Kernel_function.t ->
      Compute.MakePostDom.PostDom.key -> Cil_datatype.Stmt.Hptset.t
    val is_postdominator :
      Kernel_function.t ->
      opening:Compute.MakePostDom.PostDom.key ->
      closing:Cil_datatype.Stmt.Hptset.elt -> bool
    val display_postdom : unit -> unit
    val print_dot_postdom : string -> Kernel_function.t -> unit
  end