let add {ints = l1; is_int = is_int; expl = e1} {ints = l2; expl = e2}= let l = List.fold_left (fun l bs -> let i = add_interval l1 bs in i@l) [] l2 in union { ints = l ; is_int = is_int; expl = Ex.union e1 e2 }