aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChouser <chouser@n01se.net>2008-10-06 04:31:05 +0000
committerChouser <chouser@n01se.net>2008-10-06 04:31:05 +0000
commit5bf1c3b6afa467ffeaddafd8e35b3ca57046b375 (patch)
tree147cb5a76ebaff152725f42a441941b5fab308a2
parent85f7ac0486fc32702ac7dd6d931815100fa98d0f (diff)
ClojureScript: clean up the Class class, prn can now print the print-method methodTable.
-rw-r--r--clojurescript/avoid-java-in-boot.patch48
-rw-r--r--clojurescript/boot.js1908
-rw-r--r--clojurescript/clj.js45
-rw-r--r--clojurescript/t06.cljs8
-rw-r--r--clojurescript/test.html1
-rw-r--r--clojurescript/tojs.clj50
6 files changed, 1098 insertions, 962 deletions
diff --git a/clojurescript/avoid-java-in-boot.patch b/clojurescript/avoid-java-in-boot.patch
index ca1e01a4..db694617 100644
--- a/clojurescript/avoid-java-in-boot.patch
+++ b/clojurescript/avoid-java-in-boot.patch
@@ -1,5 +1,5 @@
diff --git a/src/clj/clojure/boot.clj b/src/clj/clojure/boot.clj
-index 68cb448..e09191a 100644
+index e0dd304..3c1f7e8 100644
--- a/src/clj/clojure/boot.clj
+++ b/src/clj/clojure/boot.clj
@@ -315,7 +315,7 @@
@@ -29,7 +29,7 @@ index 68cb448..e09191a 100644
([x y] (. clojure.lang.Numbers (multiply x y)))
([x y & more]
(reduce * (* x y) more)))
-@@ -1018,7 +1018,7 @@
+@@ -1031,7 +1031,7 @@
([state] (new clojure.lang.Agent state))
([state validate-fn] (new clojure.lang.Agent state validate-fn)))
@@ -38,7 +38,7 @@ index 68cb448..e09191a 100644
(defn send
"Dispatch an action to an agent. Returns the agent immediately.
-@@ -1330,10 +1330,10 @@
+@@ -1343,10 +1343,10 @@
(defn range
"Returns a lazy seq of nums from start (inclusive) to end
(exclusive), by step, where start defaults to 0 and step to 1."
@@ -51,7 +51,7 @@ index 68cb448..e09191a 100644
(new clojure.lang.Range start end)
(take (- end start) (iterate inc start))))
([start end step]
-@@ -1397,7 +1397,7 @@
+@@ -1410,7 +1410,7 @@
([#^java.util.Comparator comp #^java.util.Collection coll]
(when (and coll (not (. coll (isEmpty))))
(let [a (. coll (toArray))]
@@ -60,7 +60,7 @@ index 68cb448..e09191a 100644
(seq a)))))
(defn sort-by
-@@ -1427,8 +1427,8 @@
+@@ -1440,8 +1440,8 @@
~@body)
(recur (rest list#)))))
@@ -71,7 +71,7 @@ index 68cb448..e09191a 100644
(defn dorun
"When lazy sequences are produced via functions that have side
-@@ -1463,7 +1463,7 @@
+@@ -1476,7 +1476,7 @@
occurred."
[& agents]
(when *agent*
@@ -80,7 +80,7 @@ index 68cb448..e09191a 100644
(let [latch (new java.util.concurrent.CountDownLatch (count agents))
count-down (fn [agent] (. latch (countDown)) agent)]
(doseq agent agents
-@@ -1482,7 +1482,7 @@
+@@ -1495,7 +1495,7 @@
to timeout, non-nil otherwise."
[timeout-ms & agents]
(when *agent*
@@ -89,7 +89,7 @@ index 68cb448..e09191a 100644
(let [latch (new java.util.concurrent.CountDownLatch (count agents))
count-down (fn [agent] (. latch (countDown)) agent)]
(doseq agent agents
-@@ -1514,6 +1514,8 @@
+@@ -1527,6 +1527,8 @@
(. ns (importClass c (. Class (forName (str pkg "." c)))))) )
(apply import (rest import-lists))))
@@ -98,7 +98,7 @@ index 68cb448..e09191a 100644
(defn into-array
"Returns an array of the type of the first element in coll,
containing the contents of coll, which must be of a compatible
-@@ -1728,7 +1730,7 @@
+@@ -1741,7 +1743,7 @@
{:inline (fn [a i] `(. clojure.lang.RT (aget ~a ~i)))
:inline-arities #{2}}
([array idx]
@@ -107,7 +107,7 @@ index 68cb448..e09191a 100644
([array idx & idxs]
(apply aget (aget array idx) idxs)))
-@@ -1738,7 +1740,7 @@
+@@ -1751,7 +1753,7 @@
{:inline (fn [a i v] `(. clojure.lang.RT (aset ~a ~i ~v)))
:inline-arities #{3}}
([array idx val]
@@ -116,7 +116,7 @@ index 68cb448..e09191a 100644
val)
([array idx idx2 & idxv]
(apply aset (aget array idx) idx2 idxv)))
-@@ -1906,6 +1908,10 @@
+@@ -1919,6 +1921,10 @@
"Returns a set of the distinct elements of coll."
[coll] (apply hash-set coll))
@@ -127,7 +127,7 @@ index 68cb448..e09191a 100644
(defn #^{:private true}
filter-key [keyfn pred amap]
(loop [ret {} es (seq amap)]
-@@ -1938,7 +1944,7 @@
+@@ -1951,7 +1957,7 @@
the-ns [x]
(if (instance? clojure.lang.Namespace x)
x
@@ -136,7 +136,7 @@ index 68cb448..e09191a 100644
(defn ns-name
"Returns the name of the namespace, a symbol."
-@@ -1971,7 +1977,7 @@
+@@ -1984,7 +1990,7 @@
(defn ns-imports
"Returns a map of the import mappings for the namespace."
[ns]
@@ -145,7 +145,7 @@ index 68cb448..e09191a 100644
(defn refer
"refers to all public vars of ns, subject to filters.
-@@ -1989,7 +1995,8 @@
+@@ -2002,7 +2008,8 @@
to a symbol different from the var's name, in order to prevent
clashes. Use :use in the ns macro in preference to calling this directly."
[ns-sym & filters]
@@ -155,7 +155,7 @@ index 68cb448..e09191a 100644
fs (apply hash-map filters)
nspublics (ns-publics ns)
rename (or (:rename fs) {})
-@@ -2125,7 +2132,7 @@
+@@ -2138,7 +2145,7 @@
true)
(= firstb :as) (pb ret (second bs) gvec)
:else (if seen-rest?
@@ -164,7 +164,7 @@ index 68cb448..e09191a 100644
(recur (pb ret firstb (list `nth gvec n nil))
(inc n)
(rest bs)
-@@ -2156,7 +2163,7 @@
+@@ -2169,7 +2176,7 @@
(symbol? b) (-> bvec (conj b) (conj v))
(vector? b) (pvec bvec b v)
(map? b) (pmap bvec b v)
@@ -173,7 +173,7 @@ index 68cb448..e09191a 100644
process-entry (fn [bvec b] (pb bvec (key b) (val b)))]
(if (every? symbol? (keys bmap))
bindings
-@@ -2293,7 +2300,7 @@
+@@ -2310,7 +2317,7 @@
StringWriter. Returns the string created by any nested printing
calls."
[& body]
@@ -182,7 +182,7 @@ index 68cb448..e09191a 100644
(binding [*out* s#]
~@body
(str s#))))
-@@ -2339,7 +2346,7 @@
+@@ -2356,7 +2363,7 @@
logical true."
[x]
`(when-not ~x
@@ -191,7 +191,7 @@ index 68cb448..e09191a 100644
(defn test
"test [v] finds fn at key :test in var metadata and calls it,
-@@ -2411,7 +2418,7 @@
+@@ -2428,7 +2435,7 @@
(defn rand
"Returns a random floating point number between 0 (inclusive) and
1 (exclusive)."
@@ -200,7 +200,7 @@ index 68cb448..e09191a 100644
([n] (* n (rand))))
(defn rand-int
-@@ -2521,7 +2528,7 @@
+@@ -2538,7 +2545,7 @@
"Reads the file named by f into a string and returns it."
[#^String f]
(with-open r (new java.io.BufferedReader (new java.io.FileReader f))
@@ -209,7 +209,7 @@ index 68cb448..e09191a 100644
(loop [c (. r (read))]
(if (neg? c)
(str sb)
-@@ -2805,10 +2812,6 @@
+@@ -2822,10 +2829,6 @@
(send-off agt fill)
(drain))))
@@ -220,7 +220,7 @@ index 68cb448..e09191a 100644
(defn alter-var-root
"Atomically alters the root binding of var v by applying f to its
current value plus any args"
-@@ -2893,7 +2896,7 @@
+@@ -2910,7 +2913,7 @@
relationships."
([tag] (descendants global-hierarchy tag))
([h tag] (if (class? tag)
@@ -229,7 +229,7 @@ index 68cb448..e09191a 100644
(not-empty (get (:descendants h) tag)))))
(defn derive
-@@ -2920,9 +2923,9 @@
+@@ -2937,9 +2940,9 @@
(or
(when-not (contains? (tp tag) parent)
(when (contains? (ta tag) parent)
@@ -241,7 +241,7 @@ index 68cb448..e09191a 100644
{:parents (assoc (:parents h) tag (conj (get tp tag #{}) parent))
:ancestors (tf (:ancestors h) tag td parent ta)
:descendants (tf (:descendants h) parent ta tag td)})
-@@ -3049,7 +3052,7 @@
+@@ -3066,7 +3069,7 @@
[pred fmt & args]
(when pred
(let [message (apply format fmt args)
diff --git a/clojurescript/boot.js b/clojurescript/boot.js
index 3faa9362..ebd5b0da 100644
--- a/clojurescript/boot.js
+++ b/clojurescript/boot.js
@@ -2,28 +2,33 @@
//======
//(in-ns (quote clojure))
//---
-(function __tmp_fn_2665(){
+(function __tmp_fn_2674(){
return (clojure.in_ns.apply(null,["'clojure"]))}).apply(null,[]);
//======
//(def list (. clojure.lang.PersistentList creator))
//---
-(function __clojure_fn_2674(){
+(function __clojure_fn_2683(){
return (clojure.JS.def(clojure,"list",clojure.lang.PersistentList.creator))}).apply(null,[]);
//======
//(def cons (fn* cons [x seq] (. clojure.lang.RT (cons x seq))))
//---
-(function __clojure_fn_2682(){
-return (clojure.JS.def(clojure,"cons",(function __clojure_fn_2682_cons_2684(x_1,seq_2){
+(function __clojure_fn_2691(){
+return (clojure.JS.def(clojure,"cons",(function __clojure_fn_2691_cons_2693(x_1,seq_2){
var cons_0=arguments.callee;
return (clojure.lang.RT.cons(x_1,seq_2))})))}).apply(null,[]);
+// Skipping: (def let (fn* let [& decl] (cons (quote let*) decl)))
+// Skipping: (def loop (fn* loop [& decl] (cons (quote loop*) decl)))
+// Skipping: (def fn (fn* fn [& decl] (cons (quote fn*) decl)))
+// Skipping: (def first (fn first [coll] (. clojure.lang.RT (first coll))))
+// Skipping: (def rest (fn rest [x] (. clojure.lang.RT (rest x))))
//======
//(def conj (fn conj ([coll x] (. clojure.lang.RT (conj coll x))) ([coll x & xs] (if xs (recur (conj coll x) (first xs) (rest xs)) (conj coll x)))))
//---
-(function __clojure_fn_2717(){
-return (clojure.JS.def(clojure,"conj",clojure.JS.variadic(2,(function __clojure_fn_2717_conj_2719(coll_1,x_2){switch(arguments.length){
+(function __clojure_fn_2726(){
+return (clojure.JS.def(clojure,"conj",clojure.JS.variadic(2,(function __clojure_fn_2726_conj_2728(coll_1,x_2){switch(arguments.length){
case 2:var conj_0=arguments.callee;
return (clojure.lang.RT.conj(coll_1,x_2))}
var _cnt,_rtn,xs_3,conj_0=arguments.callee,xs_3=clojure.JS.rest_args(this,arguments,2);
@@ -33,98 +38,102 @@ do{_cnt=0;_rtn=((xs_3)?((_cnt=1,_rtn=[conj_0.apply(null,[coll_1,x_2]),clojure.fi
//======
//(def second (fn second [x] (first (rest x))))
//---
-(function __clojure_fn_2727(){
-return (clojure.JS.def(clojure,"second",(function __clojure_fn_2727_second_2729(x_1){
+(function __clojure_fn_2736(){
+return (clojure.JS.def(clojure,"second",(function __clojure_fn_2736_second_2738(x_1){
var second_0=arguments.callee;
return (clojure.first.apply(null,[clojure.rest.apply(null,[x_1])]))})))}).apply(null,[]);
//======
//(def ffirst (fn ffirst [x] (first (first x))))
//---
-(function __clojure_fn_2737(){
-return (clojure.JS.def(clojure,"ffirst",(function __clojure_fn_2737_ffirst_2739(x_1){
+(function __clojure_fn_2746(){
+return (clojure.JS.def(clojure,"ffirst",(function __clojure_fn_2746_ffirst_2748(x_1){
var ffirst_0=arguments.callee;
return (clojure.first.apply(null,[clojure.first.apply(null,[x_1])]))})))}).apply(null,[]);
//======
//(def rfirst (fn rfirst [x] (rest (first x))))
//---
-(function __clojure_fn_2747(){
-return (clojure.JS.def(clojure,"rfirst",(function __clojure_fn_2747_rfirst_2749(x_1){
+(function __clojure_fn_2756(){
+return (clojure.JS.def(clojure,"rfirst",(function __clojure_fn_2756_rfirst_2758(x_1){
var rfirst_0=arguments.callee;
return (clojure.rest.apply(null,[clojure.first.apply(null,[x_1])]))})))}).apply(null,[]);
//======
//(def frest (fn frest [x] (first (rest x))))
//---
-(function __clojure_fn_2757(){
-return (clojure.JS.def(clojure,"frest",(function __clojure_fn_2757_frest_2759(x_1){
+(function __clojure_fn_2766(){
+return (clojure.JS.def(clojure,"frest",(function __clojure_fn_2766_frest_2768(x_1){
var frest_0=arguments.callee;
return (clojure.first.apply(null,[clojure.rest.apply(null,[x_1])]))})))}).apply(null,[]);
//======
//(def rrest (fn rrest [x] (rest (rest x))))
//---
-(function __clojure_fn_2767(){
-return (clojure.JS.def(clojure,"rrest",(function __clojure_fn_2767_rrest_2769(x_1){
+(function __clojure_fn_2776(){
+return (clojure.JS.def(clojure,"rrest",(function __clojure_fn_2776_rrest_2778(x_1){
var rrest_0=arguments.callee;
return (clojure.rest.apply(null,[clojure.rest.apply(null,[x_1])]))})))}).apply(null,[]);
+// Skipping: (def seq (fn seq [coll] (. clojure.lang.RT (seq coll))))
+// Skipping: (def instance? (fn instance? [c x] (. c (isInstance x))))
//======
//(def seq? (fn seq? [x] (instance? clojure.lang.ISeq x)))
//---
-(function __clojure_fn_2787(){
-return (clojure.JS.def(clojure,"seq_QMARK_",(function __clojure_fn_2787_seq_QMARK_2789(x_1){
+(function __clojure_fn_2796(){
+return (clojure.JS.def(clojure,"seq_QMARK_",(function __clojure_fn_2796_seq_QMARK_2798(x_1){
var seq_QMARK__0=arguments.callee;
return (clojure.instance_QMARK_.apply(null,[clojure.lang.ISeq,x_1]))})))}).apply(null,[]);
+// Skipping: (def string? (fn string? [x] (instance? String x)))
//======
//(def map? (fn map? [x] (instance? clojure.lang.IPersistentMap x)))
//---
-(function __clojure_fn_2802(){
-return (clojure.JS.def(clojure,"map_QMARK_",(function __clojure_fn_2802_map_QMARK_2804(x_1){
+(function __clojure_fn_2811(){
+return (clojure.JS.def(clojure,"map_QMARK_",(function __clojure_fn_2811_map_QMARK_2813(x_1){
var map_QMARK__0=arguments.callee;
return (clojure.instance_QMARK_.apply(null,[clojure.lang.IPersistentMap,x_1]))})))}).apply(null,[]);
//======
//(def vector? (fn vector? [x] (instance? clojure.lang.IPersistentVector x)))
//---
-(function __clojure_fn_2812(){
-return (clojure.JS.def(clojure,"vector_QMARK_",(function __clojure_fn_2812_vector_QMARK_2814(x_1){
+(function __clojure_fn_2821(){
+return (clojure.JS.def(clojure,"vector_QMARK_",(function __clojure_fn_2821_vector_QMARK_2823(x_1){
var vector_QMARK__0=arguments.callee;
return (clojure.instance_QMARK_.apply(null,[clojure.lang.IPersistentVector,x_1]))})))}).apply(null,[]);
//======
//(def sigs (fn [fdecl] (if (seq? (first fdecl)) (loop [ret [] fdecl fdecl] (if fdecl (recur (conj ret (first (first fdecl))) (rest fdecl)) (seq ret))) (list (first fdecl)))))
//---
-(function __clojure_fn_2823(){
-return (clojure.JS.def(clojure,"sigs",(function __clojure_fn_2823_sigs_2825(fdecl_1){
-var ret_2,fdecl_3;
+(function __clojure_fn_2832(){
+return (clojure.JS.def(clojure,"sigs",(function __clojure_fn_2832_sigs_2834(fdecl_1){
+var fdecl_3,ret_2;
return (((clojure.seq_QMARK_.apply(null,[clojure.first.apply(null,[fdecl_1])]))?(((function __loop(){var _rtn,_cnt;(ret_2=clojure.lang.PersistentVector.EMPTY),
(fdecl_3=fdecl_1);do{_cnt=0;
_rtn=((fdecl_3)?((_cnt=1,_rtn=[clojure.conj.apply(null,[ret_2,clojure.first.apply(null,[clojure.first.apply(null,[fdecl_3])])]),clojure.rest.apply(null,[fdecl_3])],ret_2=_rtn[0],fdecl_3=_rtn[1])):(clojure.seq.apply(null,[ret_2])))}while(_cnt);return _rtn;})())):(clojure.list.apply(null,[clojure.first.apply(null,[fdecl_1])]))))})))}).apply(null,[]);
+// Skipping: (def assoc (fn assoc ([map key val] (. clojure.lang.RT (assoc map key val))) ([map key val & kvs] (let [ret (assoc map key val)] (if kvs (recur ret (first kvs) (second kvs) (rrest kvs)) ret)))))
//======
//(def meta (fn meta [x] (if (instance? clojure.lang.IObj x) (. x (meta)))))
//---
-(function __clojure_fn_2839(){
-return (clojure.JS.def(clojure,"meta",(function __clojure_fn_2839_meta_2841(x_1){
+(function __clojure_fn_2848(){
+return (clojure.JS.def(clojure,"meta",(function __clojure_fn_2848_meta_2850(x_1){
var meta_0=arguments.callee;
return (((clojure.instance_QMARK_.apply(null,[clojure.lang.IObj,x_1]))?((x_1).meta()):(null)))})))}).apply(null,[]);
//======
//(def with-meta (fn with-meta [x m] (. x (withMeta m))))
//---
-(function __clojure_fn_2849(){
-return (clojure.JS.def(clojure,"with_meta",(function __clojure_fn_2849_with_meta_2851(x_1,m_2){
+(function __clojure_fn_2858(){
+return (clojure.JS.def(clojure,"with_meta",(function __clojure_fn_2858_with_meta_2860(x_1,m_2){
var with_meta_0=arguments.callee;
return ((x_1).withMeta(m_2))})))}).apply(null,[]);
//======
//(def last (fn last [s] (if (rest s) (recur (rest s)) (first s))))
//---
-(function __clojure_fn_2859(){
-return (clojure.JS.def(clojure,"last",(function __clojure_fn_2859_last_2861(s_1){
+(function __clojure_fn_2868(){
+return (clojure.JS.def(clojure,"last",(function __clojure_fn_2868_last_2870(s_1){
var _cnt,_rtn,last_0=arguments.callee;
do{_cnt=0;_rtn=((clojure.rest.apply(null,[s_1]))?((_cnt=1,_rtn=[clojure.rest.apply(null,[s_1])],s_1=_rtn[0])):(clojure.first.apply(null,[s_1])))
}while(_cnt);return _rtn;})))}).apply(null,[]);
@@ -132,32 +141,34 @@ do{_cnt=0;_rtn=((clojure.rest.apply(null,[s_1]))?((_cnt=1,_rtn=[clojure.rest.app
//======
//(def butlast (fn butlast [s] (loop [ret [] s s] (if (rest s) (recur (conj ret (first s)) (rest s)) (seq ret)))))
//---
-(function __clojure_fn_2869(){
-return (clojure.JS.def(clojure,"butlast",(function __clojure_fn_2869_butlast_2871(s_1){
+(function __clojure_fn_2878(){
+return (clojure.JS.def(clojure,"butlast",(function __clojure_fn_2878_butlast_2880(s_1){
var s_3,ret_2,butlast_0=arguments.callee;
return (((function __loop(){var _rtn,_cnt;(ret_2=clojure.lang.PersistentVector.EMPTY),
(s_3=s_1);do{_cnt=0;
_rtn=((clojure.rest.apply(null,[s_3]))?((_cnt=1,_rtn=[clojure.conj.apply(null,[ret_2,clojure.first.apply(null,[s_3])]),clojure.rest.apply(null,[s_3])],ret_2=_rtn[0],s_3=_rtn[1])):(clojure.seq.apply(null,[ret_2])))}while(_cnt);return _rtn;})()))})))}).apply(null,[]);
+// Skipping: (def defn (fn defn [name & fdecl] (let [m (if (string? (first fdecl)) {:doc (first fdecl)} {}) fdecl (if (string? (first fdecl)) (rest fdecl) fdecl) m (if (map? (first fdecl)) (conj m (first fdecl)) m) fdecl (if (map? (first fdecl)) (rest fdecl) fdecl) fdecl (if (vector? (first fdecl)) (list fdecl) fdecl) m (if (map? (last fdecl)) (conj m (last fdecl)) m) fdecl (if (map? (last fdecl)) (butlast fdecl) fdecl) m (conj {:arglists (list (quote quote) (sigs fdecl))} m)] (list (quote def) (with-meta name (conj (if (meta name) (meta name) {}) m)) (cons (quote clojure/fn) fdecl)))))
+// Skipping: (. (var defn) (setMacro))
//======
//(defn cast "Throws a ClassCastException if x is not a c, else returns x." [c x] (. c (cast x)))
//---
-(function __clojure_fn_2888(){
-return (clojure.JS.def(clojure,"cast",(function __clojure_fn_2888_cast_2890(c_1,x_2){
+(function __clojure_fn_2897(){
+return (clojure.JS.def(clojure,"cast",(function __clojure_fn_2897_cast_2899(c_1,x_2){
return ((c_1).cast(x_2))})))}).apply(null,[]);
//======
//(defn to-array "Returns an array of Objects containing the contents of coll, which\n can be any Collection. Maps to java.util.Collection.toArray()." [coll] (. clojure.lang.RT (toArray coll)))
//---
-(function __clojure_fn_2900(){
-return (clojure.JS.def(clojure,"to_array",(function __clojure_fn_2900_to_array_2902(coll_1){
+(function __clojure_fn_2909(){
+return (clojure.JS.def(clojure,"to_array",(function __clojure_fn_2909_to_array_2911(coll_1){
return (clojure.lang.RT.toArray(coll_1))})))}).apply(null,[]);
//======
//(defn vector "Creates a new vector containing the args." ([] []) ([& args] (. clojure.lang.LazilyPersistentVector (create args))))
//---
-(function __clojure_fn_2913(){
-return (clojure.JS.def(clojure,"vector",clojure.JS.variadic(0,(function __clojure_fn_2913_vector_2915(){switch(arguments.length){
+(function __clojure_fn_2922(){
+return (clojure.JS.def(clojure,"vector",clojure.JS.variadic(0,(function __clojure_fn_2922_vector_2924(){switch(arguments.length){
case 0:return (clojure.lang.PersistentVector.EMPTY)}
var args_1,args_1=clojure.JS.rest_args(this,arguments,0);
return (clojure.lang.LazilyPersistentVector.create(args_1))}))))}).apply(null,[]);
@@ -165,15 +176,16 @@ return (clojure.lang.LazilyPersistentVector.create(args_1))}))))}).apply(null,[]
//======
//(defn vec "Creates a new vector containing the contents of coll." ([coll] (. clojure.lang.LazilyPersistentVector (createOwning (to-array coll)))))
//---
-(function __clojure_fn_2926(){
-return (clojure.JS.def(clojure,"vec",(function __clojure_fn_2926_vec_2928(coll_1){
+(function __clojure_fn_2935(){
+return (clojure.JS.def(clojure,"vec",(function __clojure_fn_2935_vec_2937(coll_1){
return (clojure.lang.LazilyPersistentVector.createOwning(clojure.to_array.apply(null,[coll_1])))})))}).apply(null,[]);
+// Skipping: (defn hash-map "keyval => key val\n Returns a new hash map with supplied mappings." ([] {}) ([& keyvals] (. clojure.lang.PersistentHashMap (create keyvals))))
//======
//(defn hash-set "Returns a new hash set with supplied keys." ([] #{}) ([& keys] (. clojure.lang.PersistentHashSet (create keys))))
//---
-(function __clojure_fn_2946(){
-return (clojure.JS.def(clojure,"hash_set",clojure.JS.variadic(0,(function __clojure_fn_2946_hash_set_2948(){switch(arguments.length){
+(function __clojure_fn_2955(){
+return (clojure.JS.def(clojure,"hash_set",clojure.JS.variadic(0,(function __clojure_fn_2955_hash_set_2957(){switch(arguments.length){
case 0:return (clojure.lang.PersistentHashSet.EMPTY)}
var keys_1,keys_1=clojure.JS.rest_args(this,arguments,0);
return (clojure.lang.PersistentHashSet.create(keys_1))}))))}).apply(null,[]);
@@ -181,63 +193,67 @@ return (clojure.lang.PersistentHashSet.create(keys_1))}))))}).apply(null,[]);
//======
//(defn sorted-map "keyval => key val\n Returns a new sorted map with supplied mappings." ([& keyvals] (. clojure.lang.PersistentTreeMap (create keyvals))))
//---
-(function __clojure_fn_2959(){
-return (clojure.JS.def(clojure,"sorted_map",clojure.JS.variadic(0,(function __clojure_fn_2959_sorted_map_2961(){
+(function __clojure_fn_2968(){
+return (clojure.JS.def(clojure,"sorted_map",clojure.JS.variadic(0,(function __clojure_fn_2968_sorted_map_2970(){
var keyvals_1,keyvals_1=clojure.JS.rest_args(this,arguments,0);
return (clojure.lang.PersistentTreeMap.create(keyvals_1))}))))}).apply(null,[]);
//======
//(defn sorted-set "Returns a new sorted set with supplied keys." ([& keys] (. clojure.lang.PersistentTreeSet (create keys))))
//---
-(function __clojure_fn_2971(){
-return (clojure.JS.def(clojure,"sorted_set",clojure.JS.variadic(0,(function __clojure_fn_2971_sorted_set_2973(){
+(function __clojure_fn_2980(){
+return (clojure.JS.def(clojure,"sorted_set",clojure.JS.variadic(0,(function __clojure_fn_2980_sorted_set_2982(){
var keys_1,keys_1=clojure.JS.rest_args(this,arguments,0);
return (clojure.lang.PersistentTreeSet.create(keys_1))}))))}).apply(null,[]);
//======
//(defn sorted-map-by "keyval => key val\n Returns a new sorted map with supplied mappings, using the supplied comparator." ([comparator & keyvals] (. clojure.lang.PersistentTreeMap (create comparator keyvals))))
//---
-(function __clojure_fn_2983(){
-return (clojure.JS.def(clojure,"sorted_map_by",clojure.JS.variadic(1,(function __clojure_fn_2983_sorted_map_by_2985(comparator_1){
+(function __clojure_fn_2992(){
+return (clojure.JS.def(clojure,"sorted_map_by",clojure.JS.variadic(1,(function __clojure_fn_2992_sorted_map_by_2994(comparator_1){
var keyvals_2,keyvals_2=clojure.JS.rest_args(this,arguments,1);
return (clojure.lang.PersistentTreeMap.create(comparator_1,keyvals_2))}))))}).apply(null,[]);
+// Skipping: (def defmacro (fn [name & args] (list (quote do) (cons (quote clojure/defn) (cons name args)) (list (quote .) (list (quote var) name) (quote (setMacro))))))
+// Skipping: (. (var defmacro) (setMacro))
+// Skipping: (defmacro when "Evaluates test. If logical true, evaluates body in an implicit do." [test & body] (list (quote if) test (cons (quote do) body)))
+// Skipping: (defmacro when-not "Evaluates test. If logical false, evaluates body in an implicit do." [test & body] (list (quote if) test nil (cons (quote do) body)))
//======
//(defn nil? "Returns true if x is nil, false otherwise." {:tag Boolean} [x] (identical? x nil))
//---
-(function __clojure_fn_3016(){
-return (clojure.JS.def(clojure,"nil_QMARK_",(function __clojure_fn_3016_nil_QMARK_3018(x_1){
+(function __clojure_fn_3025(){
+return (clojure.JS.def(clojure,"nil_QMARK_",(function __clojure_fn_3025_nil_QMARK_3027(x_1){
return (clojure.identical_QMARK_.apply(null,[x_1,null]))})))}).apply(null,[]);
//======
//(defn false? "Returns true if x is the value false, false otherwise." {:tag Boolean} [x] (identical? x false))
//---
-(function __clojure_fn_3028(){
-return (clojure.JS.def(clojure,"false_QMARK_",(function __clojure_fn_3028_false_QMARK_3030(x_1){
+(function __clojure_fn_3037(){
+return (clojure.JS.def(clojure,"false_QMARK_",(function __clojure_fn_3037_false_QMARK_3039(x_1){
return (clojure.identical_QMARK_.apply(null,[x_1,false]))})))}).apply(null,[]);
//======
//(defn true? "Returns true if x is the value true, false otherwise." {:tag Boolean} [x] (identical? x true))
//---
-(function __clojure_fn_3040(){
-return (clojure.JS.def(clojure,"true_QMARK_",(function __clojure_fn_3040_true_QMARK_3042(x_1){
+(function __clojure_fn_3049(){
+return (clojure.JS.def(clojure,"true_QMARK_",(function __clojure_fn_3049_true_QMARK_3051(x_1){
return (clojure.identical_QMARK_.apply(null,[x_1,true]))})))}).apply(null,[]);
//======
//(defn not "Returns true if x is logical false, false otherwise." {:tag Boolean} [x] (if x false true))
//---
-(function __clojure_fn_3052(){
-return (clojure.JS.def(clojure,"not",(function __clojure_fn_3052_not_3054(x_1){
+(function __clojure_fn_3061(){
+return (clojure.JS.def(clojure,"not",(function __clojure_fn_3061_not_3063(x_1){
return (((x_1)?(false):(true)))})))}).apply(null,[]);
//======
//(defn str "With no args, returns the empty string. With one arg x, returns\n x.toString(). (str nil) returns the empty string. With more than\n one arg, returns the concatenation of the str values of the args." {:tag String} ([] "") ([x] (if (nil? x) "" (. x (toString)))) ([x & ys] (loop [sb (clojure.lang.RT/makeStringBuilder (str x)) more ys] (if more (recur (. sb (append (str (first more)))) (rest more)) (str sb)))))
//---
-(function __clojure_fn_3066(){
-return (clojure.JS.def(clojure,"str",clojure.JS.variadic(1,(function __clojure_fn_3066_str_3068(x_1){switch(arguments.length){
+(function __clojure_fn_3075(){
+return (clojure.JS.def(clojure,"str",clojure.JS.variadic(1,(function __clojure_fn_3075_str_3077(x_1){switch(arguments.length){
case 1:return (((clojure.nil_QMARK_.apply(null,[x_1]))?(""):((x_1).toString())))
case 0:return ("")}
-var more_4,sb_3,ys_2,ys_2=clojure.JS.rest_args(this,arguments,1);
+var ys_2,sb_3,more_4,ys_2=clojure.JS.rest_args(this,arguments,1);
return (((function __loop(){var _rtn,_cnt;(sb_3=clojure.lang.RT.makeStringBuilder(clojure.str.apply(null,[x_1]))),
(more_4=ys_2);do{_cnt=0;
_rtn=((more_4)?((_cnt=1,_rtn=[(sb_3).append(clojure.str.apply(null,[clojure.first.apply(null,[more_4])])),clojure.rest.apply(null,[more_4])],sb_3=_rtn[0],more_4=_rtn[1])):(clojure.str.apply(null,[sb_3])))}while(_cnt);return _rtn;})()))}))))}).apply(null,[]);
@@ -245,8 +261,8 @@ _rtn=((more_4)?((_cnt=1,_rtn=[(sb_3).append(clojure.str.apply(null,[clojure.firs
//======
//(defn symbol "Returns a Symbol with the given namespace and name." ([name] (. clojure.lang.Symbol (intern name))) ([ns name] (. clojure.lang.Symbol (intern ns name))))
//---
-(function __clojure_fn_3081(){
-return (clojure.JS.def(clojure,"symbol",(function __clojure_fn_3081_symbol_3083(ns_1,name_2){switch(arguments.length){
+(function __clojure_fn_3090(){
+return (clojure.JS.def(clojure,"symbol",(function __clojure_fn_3090_symbol_3092(ns_1,name_2){switch(arguments.length){
case 1:var name_1=arguments[0];
return (clojure.lang.Symbol.intern(name_1))}
return (clojure.lang.Symbol.intern(ns_1,name_2))})))}).apply(null,[]);
@@ -254,8 +270,8 @@ return (clojure.lang.Symbol.intern(ns_1,name_2))})))}).apply(null,[]);
//======
//(defn keyword "Returns a Keyword with the given namespace and name. Do not use :\n in the keyword strings, it will be added automatically." ([name] (. clojure.lang.Keyword (intern nil name))) ([ns name] (. clojure.lang.Keyword (intern ns name))))
//---
-(function __clojure_fn_3095(){
-return (clojure.JS.def(clojure,"keyword",(function __clojure_fn_3095_keyword_3097(ns_1,name_2){switch(arguments.length){
+(function __clojure_fn_3104(){
+return (clojure.JS.def(clojure,"keyword",(function __clojure_fn_3104_keyword_3106(ns_1,name_2){switch(arguments.length){
case 1:var name_1=arguments[0];
return (clojure.lang.Keyword.intern(null,name_1))}
return (clojure.lang.Keyword.intern(ns_1,name_2))})))}).apply(null,[]);
@@ -263,78 +279,82 @@ return (clojure.lang.Keyword.intern(ns_1,name_2))})))}).apply(null,[]);
//======
//(defn gensym "Returns a new symbol with a unique name. If a prefix string is\n supplied, the name is prefix# where # is some unique number. If\n prefix is not supplied, the prefix is 'G'." ([] (gensym "G__")) ([prefix-string] (. clojure.lang.Symbol (intern (str prefix-string (str (. clojure.lang.RT (nextID))))))))
//---
-(function __clojure_fn_3109(){
-return (clojure.JS.def(clojure,"gensym",(function __clojure_fn_3109_gensym_3111(prefix_string_1){switch(arguments.length){
+(function __clojure_fn_3118(){
+return (clojure.JS.def(clojure,"gensym",(function __clojure_fn_3118_gensym_3120(prefix_string_1){switch(arguments.length){
case 0:return (clojure.gensym.apply(null,["G__"]))}
return (clojure.lang.Symbol.intern(clojure.str.apply(null,[prefix_string_1,clojure.str.apply(null,[clojure.lang.RT.nextID()])])))})))}).apply(null,[]);
+// Skipping: (defmacro cond "Takes a set of test/expr pairs. It evaluates each test one at a\n time. If a test returns logical true, cond evaluates and returns\n the value of the corresponding expr and doesn't evaluate any of the\n other tests or exprs. (cond) returns nil." [& clauses] (when clauses (list (quote if) (first clauses) (second clauses) (cons (quote cond) (rest (rest clauses))))))
//======
//(defn spread {:private true} [arglist] (cond (nil? arglist) nil (nil? (rest arglist)) (seq (first arglist)) :else (cons (first arglist) (spread (rest arglist)))))
//---
-(function __clojure_fn_3128(){
-return (clojure.JS.def(clojure,"spread",(function __clojure_fn_3128_spread_3130(arglist_1){
+(function __clojure_fn_3137(){
+return (clojure.JS.def(clojure,"spread",(function __clojure_fn_3137_spread_3139(arglist_1){
return (((clojure.nil_QMARK_.apply(null,[arglist_1]))?(null):(((clojure.nil_QMARK_.apply(null,[clojure.rest.apply(null,[arglist_1])]))?(clojure.seq.apply(null,[clojure.first.apply(null,[arglist_1])])):(((clojure.keyword("","else"))?(clojure.cons.apply(null,[clojure.first.apply(null,[arglist_1]),clojure.spread.apply(null,[clojure.rest.apply(null,[arglist_1])])])):(null)))))))})))}).apply(null,[]);
+// Skipping: (defn apply "Applies fn f to the argument list formed by prepending args to argseq." {:arglists (quote ([f args* argseq]))} [f & args] (. f (applyTo (spread args))))
//======
//(defn list* "Creates a new list containing the item prepended to more." [item & more] (spread (cons item more)))
//---
-(function __clojure_fn_3146(){
-return (clojure.JS.def(clojure,"list_STAR_",clojure.JS.variadic(1,(function __clojure_fn_3146_list_STAR_3148(item_1){
+(function __clojure_fn_3155(){
+return (clojure.JS.def(clojure,"list_STAR_",clojure.JS.variadic(1,(function __clojure_fn_3155_list_STAR_3157(item_1){
var more_2,more_2=clojure.JS.rest_args(this,arguments,1);
return (clojure.spread.apply(null,[clojure.cons.apply(null,[item_1,more_2])]))}))))}).apply(null,[]);
+// Skipping: (defmacro delay "Takes a body of expressions and yields a Delay object than will\n invoke the body only the first time it is forced (with force), and\n will cache the result and return it on all subsequent force calls" [& body] (list (quote new) (quote clojure.lang.Delay) (list* (quote clojure/fn) [] body)))
//======
//(defn delay? "returns true if x is a Delay created with delay" [x] (instance? clojure.lang.Delay x))
//---
-(function __clojure_fn_3164(){
-return (clojure.JS.def(clojure,"delay_QMARK_",(function __clojure_fn_3164_delay_QMARK_3166(x_1){
+(function __clojure_fn_3173(){
+return (clojure.JS.def(clojure,"delay_QMARK_",(function __clojure_fn_3173_delay_QMARK_3175(x_1){
return (clojure.instance_QMARK_.apply(null,[clojure.lang.Delay,x_1]))})))}).apply(null,[]);
//======
//(defn force "If x is a Delay, returns the (possibly cached) value of its expression, else returns x" [x] (. clojure.lang.Delay (force x)))
//---
-(function __clojure_fn_3176(){
-return (clojure.JS.def(clojure,"force",(function __clojure_fn_3176_force_3178(x_1){
+(function __clojure_fn_3185(){
+return (clojure.JS.def(clojure,"force",(function __clojure_fn_3185_force_3187(x_1){
return (clojure.lang.Delay.force(x_1))})))}).apply(null,[]);
//======
//(defn fnseq "Returns a seq object whose first is first and whose rest is the\n value produced by calling restfn with no arguments. restfn will be\n called at most once per step in the sequence, e.g. calling rest\n repeatedly on the head of the seq calls restfn once - the value it\n yields is cached." [first restfn] (new clojure.lang.FnSeq first restfn))
//---
-(function __clojure_fn_3188(){
-return (clojure.JS.def(clojure,"fnseq",(function __clojure_fn_3188_fnseq_3190(first_1,restfn_2){
+(function __clojure_fn_3197(){
+return (clojure.JS.def(clojure,"fnseq",(function __clojure_fn_3197_fnseq_3199(first_1,restfn_2){
return ((new clojure.lang.FnSeq(first_1,restfn_2)))})))}).apply(null,[]);
+// Skipping: (defmacro lazy-cons "Expands to code which produces a seq object whose first is\n first-expr and whose rest is rest-expr, neither of which is\n evaluated until first/rest is called. Each expr will be evaluated at most\n once per step in the sequence, e.g. calling first/rest repeatedly on the\n same node of the seq evaluates first/rest-expr once - the values they yield are\n cached." [first-expr & rest-expr] (list (quote new) (quote clojure.lang.LazyCons) (list (quote clojure/fn) (list [] first-expr) (list* [(gensym)] rest-expr))))
//======
//(defn cache-seq "Given a seq s, returns a lazy seq that will touch each element of s\n at most once, caching the results." [s] (when s (clojure.lang.CachedSeq. s)))
//---
-(function __clojure_fn_3206(){
-return (clojure.JS.def(clojure,"cache_seq",(function __clojure_fn_3206_cache_seq_3208(s_1){
+(function __clojure_fn_3215(){
+return (clojure.JS.def(clojure,"cache_seq",(function __clojure_fn_3215_cache_seq_3217(s_1){
return (((s_1)?((new clojure.lang.CachedSeq(s_1))):(null)))})))}).apply(null,[]);
//======
//(defn concat "Returns a lazy seq representing the concatenation of\tthe elements in the supplied colls." ([] nil) ([x] (seq x)) ([x y] (if (seq x) (lazy-cons (first x) (concat (rest x) y)) (seq y))) ([x y & zs] (let [cat (fn cat [xys zs] (if (seq xys) (lazy-cons (first xys) (cat (rest xys) zs)) (when zs (recur (first zs) (rest zs)))))] (cat (concat x y) zs))))
//---
-(function __clojure_fn_3233(){
-return (clojure.JS.def(clojure,"concat",clojure.JS.variadic(2,(function __clojure_fn_3233_concat_3235(x_1,y_2){switch(arguments.length){
-case 2:return (((clojure.seq.apply(null,[x_1]))?((new clojure.lang.LazyCons((function __clojure_fn_3233_concat_3235_fn_3240(G__3239_1){switch(arguments.length){
+(function __clojure_fn_3242(){
+return (clojure.JS.def(clojure,"concat",clojure.JS.variadic(2,(function __clojure_fn_3242_concat_3244(x_1,y_2){switch(arguments.length){
+case 2:return (((clojure.seq.apply(null,[x_1]))?((new clojure.lang.LazyCons((function __clojure_fn_3242_concat_3244_fn_3249(G__3248_1){switch(arguments.length){
case 0:return (clojure.first.apply(null,[x_1]))}
return (clojure.concat.apply(null,[clojure.rest.apply(null,[x_1]),y_2]))})))):(clojure.seq.apply(null,[y_2]))))
case 1:return (clojure.seq.apply(null,[x_1]))
case 0:return (null)}
-var cat_4,zs_3,zs_3=clojure.JS.rest_args(this,arguments,2);
-return (((cat_4=(function __clojure_fn_3233_concat_3235_cat_3245(xys_1,zs_2){
+var zs_3,cat_4,zs_3=clojure.JS.rest_args(this,arguments,2);
+return (((cat_4=(function __clojure_fn_3242_concat_3244_cat_3254(xys_1,zs_2){
var _cnt,_rtn,cat_0=arguments.callee;
-do{_cnt=0;_rtn=((clojure.seq.apply(null,[xys_1]))?((new clojure.lang.LazyCons((function __clojure_fn_3233_concat_3235_cat_3245_fn_3247(G__3246_1){switch(arguments.length){
+do{_cnt=0;_rtn=((clojure.seq.apply(null,[xys_1]))?((new clojure.lang.LazyCons((function __clojure_fn_3242_concat_3244_cat_3254_fn_3256(G__3255_1){switch(arguments.length){
case 0:return (clojure.first.apply(null,[xys_1]))}
return (cat_0.apply(null,[clojure.rest.apply(null,[xys_1]),zs_2]))})))):(((zs_2)?((_cnt=1,_rtn=[clojure.first.apply(null,[zs_2]),clojure.rest.apply(null,[zs_2])],xys_1=_rtn[0],zs_2=_rtn[1])):(null))))
}while(_cnt);return _rtn;})),
cat_4.apply(null,[clojure.concat.apply(null,[x_1,y_2]),zs_3])))}))))}).apply(null,[]);
//======
-//(defn = "Equality. Returns true if x equals y, false if not. Same as\n Java x.equals(y) except it also works for nil, and compares\n numbers in a type-independent manner. Clojure's immutable data\n structures define equals() (and thus =) as a value, not an identity,\n comparison." {:tag Boolean, :inline-arities #{2}, :inline (fn [x y] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Util)) (clojure/list (quote clojure/equal)) (clojure/list x) (clojure/list y)))} ([x] true) ([x y] (. clojure.lang.Util (equal x y))) ([x y & more] (if (= x y) (if (rest more) (recur y (first more) (rest more)) (= y (first more))) false)))
+//(defn = "Equality. Returns true if x equals y, false if not. Same as\n Java x.equals(y) except it also works for nil, and compares\n numbers in a type-independent manner. Clojure's immutable data\n structures define equals() (and thus =) as a value, not an identity,\n comparison." {:inline (fn [x y] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Util)) (clojure/list (quote clojure/equal)) (clojure/list x) (clojure/list y))), :inline-arities #{2}, :tag Boolean} ([x] true) ([x y] (. clojure.lang.Util (equal x y))) ([x y & more] (if (= x y) (if (rest more) (recur y (first more) (rest more)) (= y (first more))) false)))
//---
-(function __clojure_fn_3265(){
-return (clojure.JS.def(clojure,"_EQ_",clojure.JS.variadic(2,(function __clojure_fn_3265_EQ_3270(x_1,y_2){switch(arguments.length){
+(function __clojure_fn_3274(){
+return (clojure.JS.def(clojure,"_EQ_",clojure.JS.variadic(2,(function __clojure_fn_3274_EQ_3279(x_1,y_2){switch(arguments.length){
case 2:return (clojure.lang.Util.equal(x_1,y_2))
case 1:return (true)}
var _cnt,_rtn,more_3,more_3=clojure.JS.rest_args(this,arguments,2);
@@ -344,31 +364,33 @@ do{_cnt=0;_rtn=((clojure.lang.Util.equal(x_1,y_2))?(((clojure.rest.apply(null,[m
//======
//(defn not= "Same as (not (= obj1 obj2))" {:tag Boolean} ([x] false) ([x y] (not (= x y))) ([x y & more] (not (apply = x y more))))
//---
-(function __clojure_fn_3284(){
-return (clojure.JS.def(clojure,"not_EQ_",clojure.JS.variadic(2,(function __clojure_fn_3284_not_EQ_3286(x_1,y_2){switch(arguments.length){
+(function __clojure_fn_3293(){
+return (clojure.JS.def(clojure,"not_EQ_",clojure.JS.variadic(2,(function __clojure_fn_3293_not_EQ_3295(x_1,y_2){switch(arguments.length){
case 2:return (clojure.not.apply(null,[clojure.lang.Util.equal(x_1,y_2)]))
case 1:return (false)}
var more_3,more_3=clojure.JS.rest_args(this,arguments,2);
return (clojure.not.apply(null,[clojure.apply.apply(null,[clojure._EQ_,x_1,y_2,more_3])]))}))))}).apply(null,[]);
//======
-//(defn compare "Comparator. Returns 0 if x equals y, -1 if x is logically 'less\n than' y, else 1. Same as Java x.compareTo(y) except it also works\n for nil, and compares numbers in a type-independent manner. x must\n implement Comparable" {:tag Integer, :inline (fn [x y] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Util)) (clojure/list (quote clojure/compare)) (clojure/list x) (clojure/list y)))} [x y] (. clojure.lang.Util (compare x y)))
+//(defn compare "Comparator. Returns 0 if x equals y, -1 if x is logically 'less\n than' y, else 1. Same as Java x.compareTo(y) except it also works\n for nil, and compares numbers in a type-independent manner. x must\n implement Comparable" {:inline (fn [x y] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Util)) (clojure/list (quote clojure/compare)) (clojure/list x) (clojure/list y))), :tag Integer} [x y] (. clojure.lang.Util (compare x y)))
//---
-(function __clojure_fn_3301(){
-return (clojure.JS.def(clojure,"compare",(function __clojure_fn_3301_compare_3306(x_1,y_2){
+(function __clojure_fn_3310(){
+return (clojure.JS.def(clojure,"compare",(function __clojure_fn_3310_compare_3315(x_1,y_2){
return (clojure.lang.Util.compare(x_1,y_2))})))}).apply(null,[]);
+// Skipping: (defmacro and "Evaluates exprs one at a time, from left to right. If a form\n returns logical false (nil or false), and returns that value and\n doesn't evaluate any of the other expressions, otherwise it returns\n the value of the last expr. (and) returns true." ([] true) ([x] x) ([x & rest] (clojure/concat (clojure/list (quote clojure/let)) (clojure/list (clojure/apply clojure/vector (clojure/concat (clojure/list (quote and__3319)) (clojure/list x)))) (clojure/list (clojure/concat (clojure/list (quote if)) (clojure/list (quote and__3319)) (clojure/list (clojure/concat (clojure/list (quote clojure/and)) rest)) (clojure/list (quote and__3319)))))))
+// Skipping: (defmacro or "Evaluates exprs one at a time, from left to right. If a form\n returns a logical true value, or returns that value and doesn't\n evaluate any of the other expressions, otherwise it returns the\n value of the last expression. (or) retu