sig
  val stmt_can_reach :
    Cil_types.kernel_function -> Cil_types.stmt -> Cil_types.stmt -> bool
  val stmt_can_reach_filtered :
    (Cil_types.stmt -> bool) -> Cil_types.stmt -> Cil_types.stmt -> bool
  val stmt_is_in_cycle : Cil_types.stmt -> bool
  val stmt_is_in_cycle_filtered :
    (Cil_types.stmt -> bool) -> Cil_types.stmt -> bool
  val reachable_stmts :
    Cil_types.kernel_function -> Cil_types.stmt -> Cil_datatype.Stmt.Hptset.t
  val get_stmt_stmts : Cil_types.stmt -> Cil_datatype.Stmt.Set.t
  val get_block_stmts : Cil_types.block -> Cil_datatype.Stmt.Set.t
  val get_all_stmt_last_stmts : Cil_types.stmt -> Cil_types.stmt list
  val get_all_block_last_stmts : Cil_types.block -> Cil_types.stmt list
  val get_stmt_last_stmts :
    Cil_types.termination_kind option ->
    Cil_types.stmt -> Cil_types.stmt list
  val get_block_last_stmts :
    Cil_types.termination_kind option ->
    Cil_types.block -> Cil_types.stmt list
  val get_stmt_in_edges :
    Cil_types.stmt -> (Cil_types.stmt * Cil_types.stmt) list
  val get_block_in_edges :
    Cil_types.block -> (Cil_types.stmt * Cil_types.stmt) list
  val get_all_stmt_out_edges :
    Cil_types.stmt -> (Cil_types.stmt * Cil_types.stmt) list
  val get_all_block_out_edges :
    Cil_types.block -> (Cil_types.stmt * Cil_types.stmt) list
  val loop_preds :
    Cil_types.stmt -> Cil_types.stmt list * Cil_types.stmt list
end