 ;(cols (update vov-a 2 4 3))
 
 
-;define types
+;define records
 
 (defrecord NamedPoint [^String name ^long x ^long y])
 

(->NamedPoint "haha" 3 4)

(map->NamedPoint {:name "haha" :x 2 :y 4})




  {:pre [(pos? x)]}
  (+ x 2))

#_(try-pre -2)
(try-pre 2)

;the following shows how a lock works

(def o (Object.))

(future (locking o
          (Thread/sleep 10000)
          (println "done!")))

(future (locking o
          (println "done!")))



