(defrecord Man [name country])
;; ->Man has no defaults of its own; a wrapper with named
;; arguments and :or gives them
(defn make-man [& {:keys [name country]
:or {name "unknown" country "unknown"}}]
(->Man name country))
(def man1 (make-man))
(def man2 (make-man :name "Vladimir"))
(def man3 (make-man :country "Brazil"))
(def man4 (make-man :name "Vladimir" :country "Brazil"))
(doseq [m [man1 man2 man3 man4]]
(println (:name m) "-" (:country m)))