(* %use "Sundry/converge.fsh" ;; *) let conjunction x y = x && y ;; let all = reduce conjunction true ;; let equal_int x y = x=y ;; let equal_vec_int x y = all (zipop equal_int x y) ;; let converge eq proc (x:var a) = new different = true and y = x in while different do proc y; if eq y x then different := false else x:= y done end ;; let converge_int = converge equal_int ;; let converge_vec_int = converge equal_vec_int ;;