 
 (defn evaluation
   ([results facts exp]
-   {:pre [(coll? results) (coll? facts) (map? @exp)]}
+   {:pre [(coll? results) (coll? facts) (reftype? exp) (map? @exp)]}
    (let [numd (count results)]
      (confusion-matrix results facts exp))))
 

       (sign))))

(defn update-exp [fn key exp]
  {:pre [(fn? fn) (keyword? key) (map? @exp)]}
  (reset! exp (assoc @exp key (fn (key @exp))))
  exp)

(defn count-rate [pred fact exp]
  {:pre [(= (Math/abs pred) (Math/abs fact) 1) (map? @exp)]}
  (match [pred fact]
    [ 1  1] (update-exp inc :TP exp)
    [ 1 -1] (update-exp inc :FP exp)

                   (:Accuracy eva)))
          (reduce +)
          (* (/ 1 k))))))

(defn -main [& args]
  (if (= (count args) 8)
