aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChouser <chouser@n01se.net>2008-10-16 03:28:58 +0000
committerChouser <chouser@n01se.net>2008-10-16 03:28:58 +0000
commit7194e3d2c4d031339bd12bf1963384c41a25d21d (patch)
treefdccf568a833eb0fe127859eedba7b4de54c0254
parentba31da0866de0a825ac2a7d7ddeec7b145ddfd63 (diff)
ClojureScript: simple browser-based repl now functional.
-rw-r--r--clojurescript/boot.js2072
-rw-r--r--clojurescript/clj.js7
-rw-r--r--clojurescript/test.html57
-rw-r--r--clojurescript/tojs.clj25
4 files changed, 1114 insertions, 1047 deletions
diff --git a/clojurescript/boot.js b/clojurescript/boot.js
index 780c4cd9..0a8175ac 100644
--- a/clojurescript/boot.js
+++ b/clojurescript/boot.js
@@ -2,20 +2,20 @@
//======
//(in-ns (quote clojure))
//---
-(function __tmp_fn_2757(){
+(function __user_fn_2766(){
return (clojure.in_ns.apply(null,["'clojure"]))}).apply(null,[]);
//======
//(def list (. clojure.lang.PersistentList creator))
//---
-(function __clojure_fn_2766(){
+(function __clojure_fn_2772(){
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_2774(){
-return (clojure.JS.def(clojure,"cons",(function __clojure_fn_2774_cons_2776(x_1,seq_2){
+(function __clojure_fn_2775(){
+return (clojure.JS.def(clojure,"cons",(function __clojure_fn_2775_cons_2777(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)))
@@ -27,8 +27,8 @@ return (clojure.lang.RT.cons(x_1,seq_2))})))}).apply(null,[]);
//======
//(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_2809(){
-return (clojure.JS.def(clojure,"conj",clojure.JS.variadic(2,(function __clojure_fn_2809_conj_2811(coll_1,x_2){switch(arguments.length){
+(function __clojure_fn_2805(){
+return (clojure.JS.def(clojure,"conj",clojure.JS.variadic(2,(function __clojure_fn_2805_conj_2807(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,conj_0=arguments.callee,xs_3=clojure.JS.rest_args(this,arguments,2);
@@ -38,40 +38,40 @@ 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_2819(){
-return (clojure.JS.def(clojure,"second",(function __clojure_fn_2819_second_2821(x_1){
+(function __clojure_fn_2810(){
+return (clojure.JS.def(clojure,"second",(function __clojure_fn_2810_second_2812(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_2829(){
-return (clojure.JS.def(clojure,"ffirst",(function __clojure_fn_2829_ffirst_2831(x_1){
+(function __clojure_fn_2815(){
+return (clojure.JS.def(clojure,"ffirst",(function __clojure_fn_2815_ffirst_2817(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_2839(){
-return (clojure.JS.def(clojure,"rfirst",(function __clojure_fn_2839_rfirst_2841(x_1){
+(function __clojure_fn_2820(){
+return (clojure.JS.def(clojure,"rfirst",(function __clojure_fn_2820_rfirst_2822(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_2849(){
-return (clojure.JS.def(clojure,"frest",(function __clojure_fn_2849_frest_2851(x_1){
+(function __clojure_fn_2825(){
+return (clojure.JS.def(clojure,"frest",(function __clojure_fn_2825_frest_2827(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_2859(){
-return (clojure.JS.def(clojure,"rrest",(function __clojure_fn_2859_rrest_2861(x_1){
+(function __clojure_fn_2830(){
+return (clojure.JS.def(clojure,"rrest",(function __clojure_fn_2830_rrest_2832(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))))
@@ -80,8 +80,8 @@ return (clojure.rest.apply(null,[clojure.rest.apply(null,[x_1])]))})))}).apply(n
//======
//(def seq? (fn seq? [x] (instance? clojure.lang.ISeq x)))
//---
-(function __clojure_fn_2879(){
-return (clojure.JS.def(clojure,"seq_QMARK_",(function __clojure_fn_2879_seq_QMARK_2881(x_1){
+(function __clojure_fn_2845(){
+return (clojure.JS.def(clojure,"seq_QMARK_",(function __clojure_fn_2845_seq_QMARK_2847(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)))
@@ -89,24 +89,24 @@ return (clojure.instance_QMARK_.apply(null,[clojure.lang.ISeq,x_1]))})))}).apply
//======
//(def map? (fn map? [x] (instance? clojure.lang.IPersistentMap x)))
//---
-(function __clojure_fn_2894(){
-return (clojure.JS.def(clojure,"map_QMARK_",(function __clojure_fn_2894_map_QMARK_2896(x_1){
+(function __clojure_fn_2855(){
+return (clojure.JS.def(clojure,"map_QMARK_",(function __clojure_fn_2855_map_QMARK_2857(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_2904(){
-return (clojure.JS.def(clojure,"vector_QMARK_",(function __clojure_fn_2904_vector_QMARK_2906(x_1){
+(function __clojure_fn_2860(){
+return (clojure.JS.def(clojure,"vector_QMARK_",(function __clojure_fn_2860_vector_QMARK_2862(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_2915(){
-return (clojure.JS.def(clojure,"sigs",(function __clojure_fn_2915_sigs_2917(fdecl_1){
+(function __clojure_fn_2865(){
+return (clojure.JS.def(clojure,"sigs",(function __clojure_fn_2865_sigs_2867(fdecl_1){
var ret_2,fdecl_3;
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;
@@ -116,24 +116,24 @@ _rtn=((fdecl_3)?((_cnt=1,_rtn=[clojure.conj.apply(null,[ret_2,clojure.first.appl
//======
//(def meta (fn meta [x] (if (instance? clojure.lang.IObj x) (. x (meta)))))
//---
-(function __clojure_fn_2931(){
-return (clojure.JS.def(clojure,"meta",(function __clojure_fn_2931_meta_2933(x_1){
+(function __clojure_fn_2876(){
+return (clojure.JS.def(clojure,"meta",(function __clojure_fn_2876_meta_2878(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_2941(){
-return (clojure.JS.def(clojure,"with_meta",(function __clojure_fn_2941_with_meta_2943(x_1,m_2){
+(function __clojure_fn_2881(){
+return (clojure.JS.def(clojure,"with_meta",(function __clojure_fn_2881_with_meta_2883(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_2951(){
-return (clojure.JS.def(clojure,"last",(function __clojure_fn_2951_last_2953(s_1){
+(function __clojure_fn_2886(){
+return (clojure.JS.def(clojure,"last",(function __clojure_fn_2886_last_2888(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,[]);
@@ -141,8 +141,8 @@ 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_2961(){
-return (clojure.JS.def(clojure,"butlast",(function __clojure_fn_2961_butlast_2963(s_1){
+(function __clojure_fn_2891(){
+return (clojure.JS.def(clojure,"butlast",(function __clojure_fn_2891_butlast_2893(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;
@@ -153,16 +153,16 @@ _rtn=((clojure.rest.apply(null,[s_3]))?((_cnt=1,_rtn=[clojure.conj.apply(null,[r
//======
//(defn cast "Throws a ClassCastException if x is not a c, else returns x." [c x] (. c (cast x)))
//---
-(function __clojure_fn_2980(){
-return (clojure.JS.def(clojure,"cast",(function __clojure_fn_2980_cast_2982(c_1,x_2){
+(function __clojure_fn_2904(){
+return (clojure.JS.def(clojure,"cast",(function __clojure_fn_2904_cast_2906(c_1,x_2){
return ((c_1).cast(x_2))})))}).apply(null,[]);
// Skipping: (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)))
//======
//(defn vector "Creates a new vector containing the args." ([] []) ([& args] (. clojure.lang.LazilyPersistentVector (create args))))
//---
-(function __clojure_fn_2999(){
-return (clojure.JS.def(clojure,"vector",clojure.JS.variadic(0,(function __clojure_fn_2999_vector_3001(){switch(arguments.length){
+(function __clojure_fn_2916(){
+return (clojure.JS.def(clojure,"vector",clojure.JS.variadic(0,(function __clojure_fn_2916_vector_2918(){switch(arguments.length){
case 0:return (clojure.lang.PersistentVector.EMPTY)}
var args_1=clojure.JS.rest_args(this,arguments,0);
return (clojure.lang.LazilyPersistentVector.create(args_1))}))))}).apply(null,[]);
@@ -170,16 +170,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_3012(){
-return (clojure.JS.def(clojure,"vec",(function __clojure_fn_3012_vec_3014(coll_1){
+(function __clojure_fn_2923(){
+return (clojure.JS.def(clojure,"vec",(function __clojure_fn_2923_vec_2925(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_3032(){
-return (clojure.JS.def(clojure,"hash_set",clojure.JS.variadic(0,(function __clojure_fn_3032_hash_set_3034(){switch(arguments.length){
+(function __clojure_fn_2936(){
+return (clojure.JS.def(clojure,"hash_set",clojure.JS.variadic(0,(function __clojure_fn_2936_hash_set_2938(){switch(arguments.length){
case 0:return (clojure.lang.PersistentHashSet.EMPTY)}
var keys_1=clojure.JS.rest_args(this,arguments,0);
return (clojure.lang.PersistentHashSet.create(keys_1))}))))}).apply(null,[]);
@@ -187,24 +187,24 @@ 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_3045(){
-return (clojure.JS.def(clojure,"sorted_map",clojure.JS.variadic(0,(function __clojure_fn_3045_sorted_map_3047(){
+(function __clojure_fn_2943(){
+return (clojure.JS.def(clojure,"sorted_map",clojure.JS.variadic(0,(function __clojure_fn_2943_sorted_map_2945(){
var 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_3057(){
-return (clojure.JS.def(clojure,"sorted_set",clojure.JS.variadic(0,(function __clojure_fn_3057_sorted_set_3059(){
+(function __clojure_fn_2949(){
+return (clojure.JS.def(clojure,"sorted_set",clojure.JS.variadic(0,(function __clojure_fn_2949_sorted_set_2951(){
var 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_3069(){
-return (clojure.JS.def(clojure,"sorted_map_by",clojure.JS.variadic(1,(function __clojure_fn_3069_sorted_map_by_3071(comparator_1){
+(function __clojure_fn_2955(){
+return (clojure.JS.def(clojure,"sorted_map_by",clojure.JS.variadic(1,(function __clojure_fn_2955_sorted_map_by_2957(comparator_1){
var 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))))))
@@ -215,48 +215,48 @@ return (clojure.lang.PersistentTreeMap.create(comparator_1,keyvals_2))}))))}).ap
//======
//(defn nil? "Returns true if x is nil, false otherwise." {:tag Boolean} [x] (identical? x nil))
//---
-(function __clojure_fn_3102(){
-return (clojure.JS.def(clojure,"nil_QMARK_",(function __clojure_fn_3102_nil_QMARK_3104(x_1){
+(function __clojure_fn_2982(){
+return (clojure.JS.def(clojure,"nil_QMARK_",(function __clojure_fn_2982_nil_QMARK_2984(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_3114(){
-return (clojure.JS.def(clojure,"false_QMARK_",(function __clojure_fn_3114_false_QMARK_3116(x_1){
+(function __clojure_fn_2988(){
+return (clojure.JS.def(clojure,"false_QMARK_",(function __clojure_fn_2988_false_QMARK_2990(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_3126(){
-return (clojure.JS.def(clojure,"true_QMARK_",(function __clojure_fn_3126_true_QMARK_3128(x_1){
+(function __clojure_fn_2994(){
+return (clojure.JS.def(clojure,"true_QMARK_",(function __clojure_fn_2994_true_QMARK_2996(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_3138(){
-return (clojure.JS.def(clojure,"not",(function __clojure_fn_3138_not_3140(x_1){
+(function __clojure_fn_3000(){
+return (clojure.JS.def(clojure,"not",(function __clojure_fn_3000_not_3002(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)))))
+//(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 (new StringBuilder (str x)) more ys] (if more (recur (. sb (append (str (first more)))) (rest more)) (str sb)))))
//---
-(function __clojure_fn_3152(){
-return (clojure.JS.def(clojure,"str",clojure.JS.variadic(1,(function __clojure_fn_3152_str_3154(x_1){switch(arguments.length){
-case 0:return ("")
-case 1:return (((clojure.nil_QMARK_.apply(null,[x_1]))?(""):((x_1).toString())))}
-var more_4,sb_3,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]))),
+(function __clojure_fn_3006(){
+return (clojure.JS.def(clojure,"str",clojure.JS.variadic(1,(function __clojure_fn_3006_str_3008(x_1){switch(arguments.length){
+case 1:return (((clojure.nil_QMARK_.apply(null,[x_1]))?(""):((x_1).toString())))
+case 0:return ("")}
+var sb_3,more_4,ys_2=clojure.JS.rest_args(this,arguments,1);
+return (((function __loop(){var _rtn,_cnt;(sb_3=(new java.lang.StringBuilder(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,[]);
//======
//(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_3167(){
-return (clojure.JS.def(clojure,"symbol",(function __clojure_fn_3167_symbol_3169(ns_1,name_2){switch(arguments.length){
+(function __clojure_fn_3014(){
+return (clojure.JS.def(clojure,"symbol",(function __clojure_fn_3014_symbol_3016(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,[]);
@@ -264,8 +264,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_3181(){
-return (clojure.JS.def(clojure,"keyword",(function __clojure_fn_3181_keyword_3183(ns_1,name_2){switch(arguments.length){
+(function __clojure_fn_3021(){
+return (clojure.JS.def(clojure,"keyword",(function __clojure_fn_3021_keyword_3023(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,[]);
@@ -273,8 +273,8 @@ 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_3195(){
-return (clojure.JS.def(clojure,"gensym",(function __clojure_fn_3195_gensym_3197(prefix_string_1){switch(arguments.length){
+(function __clojure_fn_3028(){
+return (clojure.JS.def(clojure,"gensym",(function __clojure_fn_3028_gensym_3030(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))))))
@@ -282,16 +282,16 @@ return (clojure.lang.Symbol.intern(clojure.str.apply(null,[prefix_string_1,cloju
//======
//(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_3214(){
-return (clojure.JS.def(clojure,"spread",(function __clojure_fn_3214_spread_3216(arglist_1){
+(function __clojure_fn_3041(){
+return (clojure.JS.def(clojure,"spread",(function __clojure_fn_3041_spread_3043(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_3232(){
-return (clojure.JS.def(clojure,"list_STAR_",clojure.JS.variadic(1,(function __clojure_fn_3232_list_STAR_3234(item_1){
+(function __clojure_fn_3053(){
+return (clojure.JS.def(clojure,"list_STAR_",clojure.JS.variadic(1,(function __clojure_fn_3053_list_STAR_3055(item_1){
var 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)))
@@ -299,46 +299,46 @@ return (clojure.spread.apply(null,[clojure.cons.apply(null,[item_1,more_2])]))})
//======
//(defn delay? "returns true if x is a Delay created with delay" [x] (instance? clojure.lang.Delay x))
//---
-(function __clojure_fn_3250(){
-return (clojure.JS.def(clojure,"delay_QMARK_",(function __clojure_fn_3250_delay_QMARK_3252(x_1){
+(function __clojure_fn_3065(){
+return (clojure.JS.def(clojure,"delay_QMARK_",(function __clojure_fn_3065_delay_QMARK_3067(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_3262(){
-return (clojure.JS.def(clojure,"force",(function __clojure_fn_3262_force_3264(x_1){
+(function __clojure_fn_3071(){
+return (clojure.JS.def(clojure,"force",(function __clojure_fn_3071_force_3073(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_3274(){
-return (clojure.JS.def(clojure,"fnseq",(function __clojure_fn_3274_fnseq_3276(first_1,restfn_2){
+(function __clojure_fn_3077(){
+return (clojure.JS.def(clojure,"fnseq",(function __clojure_fn_3077_fnseq_3079(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_3292(){
-return (clojure.JS.def(clojure,"cache_seq",(function __clojure_fn_3292_cache_seq_3294(s_1){
+(function __clojure_fn_3089(){
+return (clojure.JS.def(clojure,"cache_seq",(function __clojure_fn_3089_cache_seq_3091(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_3319(){
-return (clojure.JS.def(clojure,"concat",clojure.JS.variadic(2,(function __clojure_fn_3319_concat_3321(x_1,y_2){switch(arguments.length){
-case 2:return (((clojure.seq.apply(null,[x_1]))?((new clojure.lang.LazyCons((function __clojure_fn_3319_concat_3321_fn_3326(G__3325_1){switch(arguments.length){
+(function __clojure_fn_3095(){
+return (clojure.JS.def(clojure,"concat",clojure.JS.variadic(2,(function __clojure_fn_3095_concat_3097(x_1,y_2){switch(arguments.length){
+case 0:return (null)
+case 2:return (((clojure.seq.apply(null,[x_1]))?((new clojure.lang.LazyCons((function __clojure_fn_3095_concat_3097_fn_3102(G__3101_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 0:return (null)
case 1:return (clojure.seq.apply(null,[x_1]))}
var cat_4,zs_3=clojure.JS.rest_args(this,arguments,2);
-return (((cat_4=(function __clojure_fn_3319_concat_3321_cat_3331(xys_1,zs_2){
+return (((cat_4=(function __clojure_fn_3095_concat_3097_cat_3107(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_3319_concat_3321_cat_3331_fn_3333(G__3332_1){switch(arguments.length){
+do{_cnt=0;_rtn=((clojure.seq.apply(null,[xys_1]))?((new clojure.lang.LazyCons((function __clojure_fn_3095_concat_3097_cat_3107_fn_3109(G__3108_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;})),
@@ -347,10 +347,10 @@ cat_4.apply(null,[clojure.concat.apply(null,[x_1,y_2]),zs_3])))}))))}).apply(nul
//======
//(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 (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}} ([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_3351(){
-return (clojure.JS.def(clojure,"_EQ_",clojure.JS.variadic(2,(function __clojure_fn_3351_EQ_3356(x_1,y_2){switch(arguments.length){
-case 2:return (clojure.lang.Util.equal(x_1,y_2))
-case 1:return (true)}
+(function __clojure_fn_3116(){
+return (clojure.JS.def(clojure,"_EQ_",clojure.JS.variadic(2,(function __clojure_fn_3116_EQ_3121(x_1,y_2){switch(arguments.length){
+case 1:return (true)
+case 2:return (clojure.lang.Util.equal(x_1,y_2))}
var _cnt,_rtn,more_3=clojure.JS.rest_args(this,arguments,2);
do{_cnt=0;_rtn=((clojure.lang.Util.equal(x_1,y_2))?(((clojure.rest.apply(null,[more_3]))?((_cnt=1,_rtn=[y_2,clojure.first.apply(null,[more_3]),clojure.rest.apply(null,[more_3])],x_1=_rtn[0],y_2=_rtn[1],more_3=_rtn[2])):(clojure.lang.Util.equal(y_2,clojure.first.apply(null,[more_3]))))):(false))
}while(_cnt);return _rtn;}))))}).apply(null,[]);
@@ -358,33 +358,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_3370(){
-return (clojure.JS.def(clojure,"not_EQ_",clojure.JS.variadic(2,(function __clojure_fn_3370_not_EQ_3372(x_1,y_2){switch(arguments.length){
-case 1:return (false)
-case 2:return (clojure.not.apply(null,[clojure.lang.Util.equal(x_1,y_2)]))}
+(function __clojure_fn_3127(){
+return (clojure.JS.def(clojure,"not_EQ_",clojure.JS.variadic(2,(function __clojure_fn_3127_not_EQ_3129(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=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)))
//---
-(function __clojure_fn_3387(){
-return (clojure.JS.def(clojure,"compare",(function __clojure_fn_3387_compare_3392(x_1,y_2){
+(function __clojure_fn_3135(){
+return (clojure.JS.def(clojure,"compare",(function __clojure_fn_3135_compare_3140(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__3396)) (clojure/list x)))) (clojure/list (clojure/concat (clojure/list (quote if)) (clojure/list (quote and__3396)) (clojure/list (clojure/concat (clojure/list (quote clojure/and)) rest)) (clojure/list (quote and__3396)))))))
-// 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) returns nil." ([] nil) ([x] x) ([x & rest] (clojure/concat (clojure/list (quote clojure/let)) (clojure/list (clojure/apply clojure/vector (clojure/concat (clojure/list (quote or__3405)) (clojure/list x)))) (clojure/list (clojure/concat (clojure/list (quote if)) (clojure/list (quote or__3405)) (clojure/list (quote or__3405)) (clojure/list (clojure/concat (clojure/list (quote clojure/or)) rest)))))))
+// 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__3144)) (clojure/list x)))) (clojure/list (clojure/concat (clojure/list (quote if)) (clojure/list (quote and__3144)) (clojure/list (clojure/concat (clojure/list (quote clojure/and)) rest)) (clojure/list (quote and__3144)))))))
+// 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) returns nil." ([] nil) ([x] x) ([x & rest] (clojure/concat (clojure/list (quote clojure/let)) (clojure/list (clojure/apply clojure/vector (clojure/concat (clojure/list (quote or__3153)) (clojure/list x)))) (clojure/list (clojure/concat (clojure/list (quote if)) (clojure/list (quote or__3153)) (clojure/list (quote or__3153)) (clojure/list (clojure/concat (clojure/list (quote clojure/or)) rest)))))))
//======
//(defn reduce "f should be a function of 2 arguments. If val is not supplied,\n returns the result of applying f to the first 2 items in coll, then\n applying f to that result and the 3rd item, etc. If coll contains no\n items, f must accept no arguments as well, and reduce returns the\n result of calling f with no arguments. If coll has only 1 item, it\n is returned and f is not called. If val is supplied, returns the\n result of applying f to val and the first item in coll, then\n applying f to that result and the 2nd item, etc. If coll contains no\n items, returns val and f is not called." ([f coll] (let [s (seq coll)] (if s (if (instance? clojure.lang.IReduce s) (. s (reduce f)) (reduce f (first s) (rest s))) (f)))) ([f val coll] (let [s (seq coll)] (if (instance? clojure.lang.IReduce s) (. s (reduce f val)) ((fn [f val s] (if s (recur f (f val (first s)) (rest s)) val)) f val s)))))
//---
-(function __clojure_fn_3424(){
-return (clojure.JS.def(clojure,"reduce",(function __clojure_fn_3424_reduce_3426(f_1,val_2,coll_3){switch(arguments.length){
+(function __clojure_fn_3162(){
+return (clojure.JS.def(clojure,"reduce",(function __clojure_fn_3162_reduce_3164(f_1,val_2,coll_3){switch(arguments.length){
case 2:var s_3,coll_2=arguments[1];
return (((s_3=clojure.seq.apply(null,[coll_2])),
((s_3)?(((clojure.instance_QMARK_.apply(null,[clojure.lang.IReduce,s_3]))?((s_3).reduce(f_1)):(clojure.reduce.apply(null,[f_1,clojure.first.apply(null,[s_3]),clojure.rest.apply(null,[s_3])])))):(f_1.apply(null,[])))))}
var s_4;
return (((s_4=clojure.seq.apply(null,[coll_3])),
-((clojure.instance_QMARK_.apply(null,[clojure.lang.IReduce,s_4]))?((s_4).reduce(f_1,val_2)):((function __clojure_fn_3424_reduce_3426_fn_3429(f_1,val_2,s_3){
+((clojure.instance_QMARK_.apply(null,[clojure.lang.IReduce,s_4]))?((s_4).reduce(f_1,val_2)):((function __clojure_fn_3162_reduce_3164_fn_3167(f_1,val_2,s_3){
var _cnt,_rtn;
do{_cnt=0;_rtn=((s_3)?((_cnt=1,_rtn=[f_1,f_1.apply(null,[val_2,clojure.first.apply(null,[s_3])]),clojure.rest.apply(null,[s_3])],f_1=_rtn[0],val_2=_rtn[1],s_3=_rtn[2])):(val_2))
}while(_cnt);return _rtn;}).apply(null,[f_1,val_2,s_4])))))})))}).apply(null,[]);
@@ -392,47 +392,47 @@ do{_cnt=0;_rtn=((s_3)?((_cnt=1,_rtn=[f_1,f_1.apply(null,[val_2,clojure.first.app
//======
//(defn reverse "Returns a seq of the items in coll in reverse order. Not lazy." [coll] (reduce conj nil coll))
//---
-(function __clojure_fn_3440(){
-return (clojure.JS.def(clojure,"reverse",(function __clojure_fn_3440_reverse_3442(coll_1){
+(function __clojure_fn_3172(){
+return (clojure.JS.def(clojure,"reverse",(function __clojure_fn_3172_reverse_3174(coll_1){
return (clojure.reduce.apply(null,[clojure.conj,null,coll_1]))})))}).apply(null,[]);
//======
-//(defn + "Returns the sum of nums. (+) returns 0." {:inline (fn [x y] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Numbers)) (clojure/list (clojure/concat (clojure/list (quote clojure/add)) (clojure/list x) (clojure/list y))))), :inline-arities #{2}} ([] 0) ([x] (clojure.lang.RT/numberCast x)) ([x y] (. clojure.lang.Numbers (add x y))) ([x y & more] (reduce + (+ x y) more)))
+//(defn + "Returns the sum of nums. (+) returns 0." {:inline (fn [x y] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Numbers)) (clojure/list (clojure/concat (clojure/list (quote clojure/add)) (clojure/list x) (clojure/list y))))), :inline-arities #{2}} ([] 0) ([x] (cast Number x)) ([x y] (. clojure.lang.Numbers (add x y))) ([x y & more] (reduce + (+ x y) more)))
//---
-(function __clojure_fn_3458(){
-return (clojure.JS.def(clojure,"_PLUS_",clojure.JS.variadic(2,(function __clojure_fn_3458_PLUS_3463(x_1,y_2){switch(arguments.length){
-case 1:return (clojure.lang.RT.numberCast(x_1))
+(function __clojure_fn_3178(){
+return (clojure.JS.def(clojure,"_PLUS_",clojure.JS.variadic(2,(function __clojure_fn_3178_PLUS_3183(x_1,y_2){switch(arguments.length){
case 0:return (0)
+case 1:return (clojure.cast.apply(null,[java.lang.Number,x_1]))
case 2:return (clojure.lang.Numbers.add(x_1,y_2))}
var more_3=clojure.JS.rest_args(this,arguments,2);
return (clojure.reduce.apply(null,[clojure._PLUS_,clojure.lang.Numbers.add(x_1,y_2),more_3]))}))))}).apply(null,[]);
//======
-//(defn * "Returns the product of nums. (*) returns 1." {:inline (fn [x y] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Numbers)) (clojure/list (clojure/concat (clojure/list (quote clojure/multiply)) (clojure/list x) (clojure/list y))))), :inline-arities #{2}} ([] 1) ([x] (clojure.lang.RT/numberCast x)) ([x y] (. clojure.lang.Numbers (multiply x y))) ([x y & more] (reduce * (* x y) more)))
+//(defn * "Returns the product of nums. (*) returns 1." {:inline (fn [x y] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Numbers)) (clojure/list (clojure/concat (clojure/list (quote clojure/multiply)) (clojure/list x) (clojure/list y))))), :inline-arities #{2}} ([] 1) ([x] (cast Number x)) ([x y] (. clojure.lang.Numbers (multiply x y))) ([x y & more] (reduce * (* x y) more)))
//---
-(function __clojure_fn_3482(){
-return (clojure.JS.def(clojure,"_STAR_",clojure.JS.variadic(2,(function __clojure_fn_3482_STAR_3487(x_1,y_2){switch(arguments.length){
+(function __clojure_fn_3190(){
+return (clojure.JS.def(clojure,"_STAR_",clojure.JS.variadic(2,(function __clojure_fn_3190_STAR_3195(x_1,y_2){switch(arguments.length){
+case 1:return (clojure.cast.apply(null,[java.lang.Number,x_1]))
case 0:return (1)
-case 2:return (clojure.lang.Numbers.multiply(x_1,y_2))
-case 1:return (clojure.lang.RT.numberCast(x_1))}
+case 2:return (clojure.lang.Numbers.multiply(x_1,y_2))}
var more_3=clojure.JS.rest_args(this,arguments,2);
return (clojure.reduce.apply(null,[clojure._STAR_,clojure.lang.Numbers.multiply(x_1,y_2),more_3]))}))))}).apply(null,[]);
//======
//(defn / "If no denominators are supplied, returns 1/numerator,\n else returns numerator divided by all of the denominators." {:inline (fn [x y] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Numbers)) (clojure/list (clojure/concat (clojure/list (quote clojure/divide)) (clojure/list x) (clojure/list y))))), :inline-arities #{2}} ([x] (/ 1 x)) ([x y] (. clojure.lang.Numbers (divide x y))) ([x y & more] (reduce / (/ x y) more)))
//---
-(function __clojure_fn_3505(){
-return (clojure.JS.def(clojure,"_SLASH_",clojure.JS.variadic(2,(function __clojure_fn_3505_SLASH_3510(x_1,y_2){switch(arguments.length){
-case 1:return (clojure.lang.Numbers.divide(1,x_1))
-case 2:return (clojure.lang.Numbers.divide(x_1,y_2))}
+(function __clojure_fn_3202(){
+return (clojure.JS.def(clojure,"_SLASH_",clojure.JS.variadic(2,(function __clojure_fn_3202_SLASH_3207(x_1,y_2){switch(arguments.length){
+case 2:return (clojure.lang.Numbers.divide(x_1,y_2))
+case 1:return (clojure.lang.Numbers.divide(1,x_1))}
var more_3=clojure.JS.rest_args(this,arguments,2);
return (clojure.reduce.apply(null,[clojure._SLASH_,clojure.lang.Numbers.divide(x_1,y_2),more_3]))}))))}).apply(null,[]);
//======
//(defn - "If no ys are supplied, returns the negation of x, else subtracts\n the ys from x and returns the result." {:inline (fn [& args] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Numbers)) (clojure/list (clojure/concat (clojure/list (quote clojure/minus)) args)))), :inline-arities #{1 2}} ([x] (. clojure.lang.Numbers (minus x))) ([x y] (. clojure.lang.Numbers (minus x y))) ([x y & more] (reduce - (- x y) more)))
//---
-(function __clojure_fn_3527(){
-return (clojure.JS.def(clojure,"_",clojure.JS.variadic(2,(function __clojure_fn_3527_3532(x_1,y_2){switch(arguments.length){
+(function __clojure_fn_3213(){
+return (clojure.JS.def(clojure,"_",clojure.JS.variadic(2,(function __clojure_fn_3213_3218(x_1,y_2){switch(arguments.length){
case 2:return (clojure.lang.Numbers.minus(x_1,y_2))
case 1:return (clojure.lang.Numbers.minus(x_1))}
var more_3=clojure.JS.rest_args(this,arguments,2);
@@ -441,10 +441,10 @@ return (clojure.reduce.apply(null,[clojure._,clojure.lang.Numbers.minus(x_1,y_2)
//======
//(defn < "Returns non-nil if nums are in monotonically increasing order,\n otherwise false." {:inline (fn [x y] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Numbers)) (clojure/list (clojure/concat (clojure/list (quote clojure/lt)) (clojure/list x) (clojure/list y))))), :inline-arities #{2}} ([x] true) ([x y] (. clojure.lang.Numbers (lt x y))) ([x y & more] (if (< x y) (if (rest more) (recur y (first more) (rest more)) (< y (first more))) false)))
//---
-(function __clojure_fn_3549(){
-return (clojure.JS.def(clojure,"_LT_",clojure.JS.variadic(2,(function __clojure_fn_3549_LT_3554(x_1,y_2){switch(arguments.length){
-case 1:return (true)
-case 2:return (clojure.lang.Numbers.lt(x_1,y_2))}
+(function __clojure_fn_3224(){
+return (clojure.JS.def(clojure,"_LT_",clojure.JS.variadic(2,(function __clojure_fn_3224_LT_3229(x_1,y_2){switch(arguments.length){
+case 2:return (clojure.lang.Numbers.lt(x_1,y_2))
+case 1:return (true)}
var _cnt,_rtn,more_3=clojure.JS.rest_args(this,arguments,2);
do{_cnt=0;_rtn=((clojure.lang.Numbers.lt(x_1,y_2))?(((clojure.rest.apply(null,[more_3]))?((_cnt=1,_rtn=[y_2,clojure.first.apply(null,[more_3]),clojure.rest.apply(null,[more_3])],x_1=_rtn[0],y_2=_rtn[1],more_3=_rtn[2])):(clojure.lang.Numbers.lt(y_2,clojure.first.apply(null,[more_3]))))):(false))
}while(_cnt);return _rtn;}))))}).apply(null,[]);
@@ -452,8 +452,8 @@ do{_cnt=0;_rtn=((clojure.lang.Numbers.lt(x_1,y_2))?(((clojure.rest.apply(null,[m
//======
//(defn <= "Returns non-nil if nums are in monotonically non-decreasing order,\n otherwise false." {:inline (fn [x y] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Numbers)) (clojure/list (clojure/concat (clojure/list (quote clojure/lte)) (clojure/list x) (clojure/list y))))), :inline-arities #{2}} ([x] true) ([x y] (. clojure.lang.Numbers (lte x y))) ([x y & more] (if (<= x y) (if (rest more) (recur y (first more) (rest more)) (<= y (first more))) false)))
//---
-(function __clojure_fn_3571(){
-return (clojure.JS.def(clojure,"_LT__EQ_",clojure.JS.variadic(2,(function __clojure_fn_3571_LT_EQ_3576(x_1,y_2){switch(arguments.length){
+(function __clojure_fn_3235(){
+return (clojure.JS.def(clojure,"_LT__EQ_",clojure.JS.variadic(2,(function __clojure_fn_3235_LT_EQ_3240(x_1,y_2){switch(arguments.length){
case 1:return (true)
case 2:return (clojure.lang.Numbers.lte(x_1,y_2))}
var _cnt,_rtn,more_3=clojure.JS.rest_args(this,arguments,2);
@@ -463,10 +463,10 @@ do{_cnt=0;_rtn=((clojure.lang.Numbers.lte(x_1,y_2))?(((clojure.rest.apply(null,[
//======
//(defn > "Returns non-nil if nums are in monotonically decreasing order,\n otherwise false." {:inline (fn [x y] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Numbers)) (clojure/list (clojure/concat (clojure/list (quote clojure/gt)) (clojure/list x) (clojure/list y))))), :inline-arities #{2}} ([x] true) ([x y] (. clojure.lang.Numbers (gt x y))) ([x y & more] (if (> x y) (if (rest more) (recur y (first more) (rest more)) (> y (first more))) false)))
//---
-(function __clojure_fn_3593(){
-return (clojure.JS.def(clojure,"_GT_",clojure.JS.variadic(2,(function __clojure_fn_3593_GT_3598(x_1,y_2){switch(arguments.length)