     (async/go-loop [i 0]
       (if (>= i nmin)
         (let [rs->info (request-info-map rs)
-              rs-up    (filter rs->info rs)
-              rs-dn    (filter (complement rs->info) rs)]
+              pred     (partial really-up? rs->info)
+              rs-up    (filter pred rs)
+              rs-dn    (filter (complement pred) rs)]
           (close-notify-chan! id)
           (cancel-requests rs-dn)
           (map rs->info rs-up))

    (mseq->m sirs :request-id)))




(defn good-strings [vs]
  (and (sequential?  vs)
       (every? string? vs)
       (every? pos? (map count vs))))

(defn request-instances [rs]
  (let [d (describe-spot-instance-requests :spot-instance-request-ids rs)]
    (map :instance-id (:spot-instance-requests d))))

  (let [t (stop-instances :instance-ids is)]
    (debug t)
    t))

(defn start [is]
  (let [t (start-instances :instance-ids is)]
    (debug t)
    t))


(defn cancel-requests [rs]
  (let [ds (:spot-instance-requests (describe-spot-instance-requests :spot-instance-request-ids rs))
