sig val union : ('a -> 'a -> 'a) -> 'a Imap.t -> 'a Imap.t -> 'a Imap.t val forall : (Imap.key -> 'a -> F.pred) -> 'a Imap.t -> F.pred val exists : (Imap.key -> 'a -> F.pred) -> 'a Imap.t -> F.pred end