Module Wp.Splitter

val pretty : Stdlib.Format.formatter -> tag -> unit
val switch_cases : Frama_c_kernel.Cil_types.stmt -> int64 list -> tag
val switch_default : Frama_c_kernel.Cil_types.stmt -> tag
type 'a t
val empty : 'a t
val singleton : 'a -> 'a t
val group : tag -> ( 'a list -> 'a ) -> 'a t -> 'a t
val union : ( 'a -> 'a -> 'a ) -> 'a t -> 'a t -> 'a t
val merge : left:( 'a -> 'c ) -> both:( 'a -> 'b -> 'c ) -> right:( 'b -> 'c ) -> 'a t -> 'b t -> 'c t
val merge_all : ( 'a list -> 'a ) -> 'a t list -> 'a t
val unmark : ( 'a list -> 'a ) -> 'a t -> 'a t

erase all tags

val length : 'a t -> int
val map : ( 'a -> 'b ) -> 'a t -> 'b t
val iter : ( tag list -> 'a -> unit ) -> 'a t -> unit
val fold : ( tag list -> 'a -> 'b -> 'b ) -> 'a t -> 'b -> 'b
val exists : ( 'a -> bool ) -> 'a t -> bool
val for_all : ( 'a -> bool ) -> 'a t -> bool
val filter : ( 'a -> bool ) -> 'a t -> 'a t