Module Micromega_plugin.Mutils

module Int : sig ... end
module ISet : sig ... end
module IMap : sig ... end
module Cmp : sig ... end
module Tag : sig ... end
module TagSet : CSig.SetS with type elt = Tag.t
val pp_list : string -> (Stdlib.out_channel -> 'a -> unit) -> Stdlib.out_channel -> 'a list -> unit
module CamlToCoq : sig ... end
module CoqToCaml : sig ... end
module Hash : sig ... end
val all_pairs : ('a -> 'a -> 'b) -> 'a list -> 'b list
val try_any : (('a -> 'b option) * 'c) list -> 'a -> 'b option
val is_sublist : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
val extract : ('a -> 'b option) -> 'a list -> ('b * 'a) option * 'a list
val extract_all : ('a -> 'b option) -> 'a list -> ('b * 'a) list * 'a list
val extract_best : ('a -> 'b option) -> ('b -> 'b -> bool) -> 'a list -> ('b * 'a) option * 'a list
val find_some : ('a -> 'b option) -> 'a list -> 'b option
val iterate_until_stable : ('a -> 'a option) -> 'a -> 'a
val simplify : ('a -> 'a option) -> 'a list -> 'a list option
val saturate : ('a -> 'b option) -> (('b * 'a) -> 'a -> 'a option) -> 'a list -> 'a list
val saturate_bin : (module Stdlib.Set.S with type elt = 'a) -> ('a -> 'a -> 'a option) -> 'a list -> 'a list
val generate : ('a -> 'b option) -> 'a list -> 'b list
val app_funs : ('a -> 'b option) list -> 'a -> 'b option
val command : string -> string array -> 'a -> 'b