; Copyright (c) Rich Hickey. All rights reserved.; The use and distribution terms for this software are covered by the; Common Public License 1.0 (http://opensource.org/licenses/cpl.php); which can be found in the file CPL.TXT at the root of this distribution.; By using this software in any fashion, you are agreeing to be bound by; the terms of this license.; You must not remove this notice, or any other, from this software.(in-ns 'clojure)(def list (. clojure.lang.PersistentListcreator))(def cons (fn*[xseq](. clojure.lang.RT(cons xseq))));during bootstrap we don't have destructuring let or fn, will redefine later(def #^{:macrotrue}let (fn*[&decl](cons 'let*decl)))(def #^{:macrotrue}fn (fn*[&decl](cons 'fn*decl)))(def conj (fn [collx](. clojure.lang.RT(conj collx))))(def defn (fn [name &fdecl](list 'defname (cons `fn (cons name fdecl)))))(. (var defn)(setMacro))(defn instance? [#^Classcx](. c(isInstancex)))(defn vector([][])([&args](. clojure.lang.PersistentVector(createargs))))(defn hash-map([]{})([&args](. clojure.lang.PersistentHashMap(createargs))))(defn sorted-map([&args](. clojure.lang.PersistentTreeMap(createargs))))(defn sorted-map-by([comparator &args](. clojure.lang.PersistentTreeMap(createcomparator args))));;;;;;;;;;;;;;;;;;;;(def defmacro (fn [name &args](list 'do(cons `defn (cons name args))(list '.(list 'varname)'(setMacro)))))(. (var defmacro)(setMacro))(defmacro when [test &body](list 'iftest (cons 'dobody)))(defmacro when-not [test &body](list 'iftest nil(cons 'dobody)));;;;;;;;;;;;;;;;; metadata ;;;;;;;;;;;;;;;;;;;;;;;;;;;(defn meta [x](when (instance? clojure.lang.IObjx)(. #^clojure.lang.IObjx(meta))))(defn with-meta [#^clojure.lang.IObjxm](. x(withMetam)))(defn #^Booleannil? [x](identical? xnil))(defn #^Booleanfalse? [x](identical? xfalse))(defn #^Booleantrue? [x](identical? xtrue))(defn not [x