UNPKG

create-expo-cljs-app

Version:

Create a react native application with Expo and Shadow-CLJS!

1 lines 49.5 kB
["^ ","~:output",["^ ","~:js","goog.provide('clojure.set');\nclojure.set.bubble_max_key = (function clojure$set$bubble_max_key(k,coll){\n\nvar max = cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.max_key,k,coll);\nreturn cljs.core.cons(max,cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p1__41680_SHARP_){\nreturn (max === p1__41680_SHARP_);\n}),coll));\n});\n/**\n * Return a set that is the union of the input sets\n */\nclojure.set.union = (function clojure$set$union(var_args){\nvar G__41685 = arguments.length;\nswitch (G__41685) {\ncase 0:\nreturn clojure.set.union.cljs$core$IFn$_invoke$arity$0();\n\nbreak;\ncase 1:\nreturn clojure.set.union.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn clojure.set.union.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__4757__auto__ = [];\nvar len__4736__auto___41742 = arguments.length;\nvar i__4737__auto___41743 = (0);\nwhile(true){\nif((i__4737__auto___41743 < len__4736__auto___41742)){\nargs_arr__4757__auto__.push((arguments[i__4737__auto___41743]));\n\nvar G__41744 = (i__4737__auto___41743 + (1));\ni__4737__auto___41743 = G__41744;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4758__auto__ = (new cljs.core.IndexedSeq(args_arr__4757__auto__.slice((2)),(0),null));\nreturn clojure.set.union.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__4758__auto__);\n\n}\n});\n\n(clojure.set.union.cljs$core$IFn$_invoke$arity$0 = (function (){\nreturn cljs.core.PersistentHashSet.EMPTY;\n}));\n\n(clojure.set.union.cljs$core$IFn$_invoke$arity$1 = (function (s1){\nreturn s1;\n}));\n\n(clojure.set.union.cljs$core$IFn$_invoke$arity$2 = (function (s1,s2){\nif((cljs.core.count(s1) < cljs.core.count(s2))){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,s2,s1);\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,s1,s2);\n}\n}));\n\n(clojure.set.union.cljs$core$IFn$_invoke$arity$variadic = (function (s1,s2,sets){\nvar bubbled_sets = clojure.set.bubble_max_key(cljs.core.count,cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(sets,s2,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([s1], 0)));\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.into,cljs.core.first(bubbled_sets),cljs.core.rest(bubbled_sets));\n}));\n\n/** @this {Function} */\n(clojure.set.union.cljs$lang$applyTo = (function (seq41682){\nvar G__41683 = cljs.core.first(seq41682);\nvar seq41682__$1 = cljs.core.next(seq41682);\nvar G__41684 = cljs.core.first(seq41682__$1);\nvar seq41682__$2 = cljs.core.next(seq41682__$1);\nvar self__4723__auto__ = this;\nreturn self__4723__auto__.cljs$core$IFn$_invoke$arity$variadic(G__41683,G__41684,seq41682__$2);\n}));\n\n(clojure.set.union.cljs$lang$maxFixedArity = (2));\n\n/**\n * Return a set that is the intersection of the input sets\n */\nclojure.set.intersection = (function clojure$set$intersection(var_args){\nvar G__41695 = arguments.length;\nswitch (G__41695) {\ncase 1:\nreturn clojure.set.intersection.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn clojure.set.intersection.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__4757__auto__ = [];\nvar len__4736__auto___41758 = arguments.length;\nvar i__4737__auto___41759 = (0);\nwhile(true){\nif((i__4737__auto___41759 < len__4736__auto___41758)){\nargs_arr__4757__auto__.push((arguments[i__4737__auto___41759]));\n\nvar G__41760 = (i__4737__auto___41759 + (1));\ni__4737__auto___41759 = G__41760;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4758__auto__ = (new cljs.core.IndexedSeq(args_arr__4757__auto__.slice((2)),(0),null));\nreturn clojure.set.intersection.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__4758__auto__);\n\n}\n});\n\n(clojure.set.intersection.cljs$core$IFn$_invoke$arity$1 = (function (s1){\nreturn s1;\n}));\n\n(clojure.set.intersection.cljs$core$IFn$_invoke$arity$2 = (function (s1,s2){\nwhile(true){\nif((cljs.core.count(s2) < cljs.core.count(s1))){\nvar G__41763 = s2;\nvar G__41764 = s1;\ns1 = G__41763;\ns2 = G__41764;\ncontinue;\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(((function (s1,s2){\nreturn (function (result,item){\nif(cljs.core.contains_QMARK_(s2,item)){\nreturn result;\n} else {\nreturn cljs.core.disj.cljs$core$IFn$_invoke$arity$2(result,item);\n}\n});})(s1,s2))\n,s1,s1);\n}\nbreak;\n}\n}));\n\n(clojure.set.intersection.cljs$core$IFn$_invoke$arity$variadic = (function (s1,s2,sets){\nvar bubbled_sets = clojure.set.bubble_max_key((function (p1__41690_SHARP_){\nreturn (- cljs.core.count(p1__41690_SHARP_));\n}),cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(sets,s2,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([s1], 0)));\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(clojure.set.intersection,cljs.core.first(bubbled_sets),cljs.core.rest(bubbled_sets));\n}));\n\n/** @this {Function} */\n(clojure.set.intersection.cljs$lang$applyTo = (function (seq41692){\nvar G__41693 = cljs.core.first(seq41692);\nvar seq41692__$1 = cljs.core.next(seq41692);\nvar G__41694 = cljs.core.first(seq41692__$1);\nvar seq41692__$2 = cljs.core.next(seq41692__$1);\nvar self__4723__auto__ = this;\nreturn self__4723__auto__.cljs$core$IFn$_invoke$arity$variadic(G__41693,G__41694,seq41692__$2);\n}));\n\n(clojure.set.intersection.cljs$lang$maxFixedArity = (2));\n\n/**\n * Return a set that is the first set without elements of the remaining sets\n */\nclojure.set.difference = (function clojure$set$difference(var_args){\nvar G__41702 = arguments.length;\nswitch (G__41702) {\ncase 1:\nreturn clojure.set.difference.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));\n\nbreak;\ncase 2:\nreturn clojure.set.difference.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ndefault:\nvar args_arr__4757__auto__ = [];\nvar len__4736__auto___41780 = arguments.length;\nvar i__4737__auto___41781 = (0);\nwhile(true){\nif((i__4737__auto___41781 < len__4736__auto___41780)){\nargs_arr__4757__auto__.push((arguments[i__4737__auto___41781]));\n\nvar G__41783 = (i__4737__auto___41781 + (1));\ni__4737__auto___41781 = G__41783;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__4758__auto__ = (new cljs.core.IndexedSeq(args_arr__4757__auto__.slice((2)),(0),null));\nreturn clojure.set.difference.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__4758__auto__);\n\n}\n});\n\n(clojure.set.difference.cljs$core$IFn$_invoke$arity$1 = (function (s1){\nreturn s1;\n}));\n\n(clojure.set.difference.cljs$core$IFn$_invoke$arity$2 = (function (s1,s2){\nif((cljs.core.count(s1) < cljs.core.count(s2))){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (result,item){\nif(cljs.core.contains_QMARK_(s2,item)){\nreturn cljs.core.disj.cljs$core$IFn$_invoke$arity$2(result,item);\n} else {\nreturn result;\n}\n}),s1,s1);\n} else {\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.disj,s1,s2);\n}\n}));\n\n(clojure.set.difference.cljs$core$IFn$_invoke$arity$variadic = (function (s1,s2,sets){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(clojure.set.difference,s1,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(sets,s2));\n}));\n\n/** @this {Function} */\n(clojure.set.difference.cljs$lang$applyTo = (function (seq41699){\nvar G__41700 = cljs.core.first(seq41699);\nvar seq41699__$1 = cljs.core.next(seq41699);\nvar G__41701 = cljs.core.first(seq41699__$1);\nvar seq41699__$2 = cljs.core.next(seq41699__$1);\nvar self__4723__auto__ = this;\nreturn self__4723__auto__.cljs$core$IFn$_invoke$arity$variadic(G__41700,G__41701,seq41699__$2);\n}));\n\n(clojure.set.difference.cljs$lang$maxFixedArity = (2));\n\n/**\n * Returns a set of the elements for which pred is true\n */\nclojure.set.select = (function clojure$set$select(pred,xset){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (s,k){\nif(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(k) : pred.call(null,k)))){\nreturn s;\n} else {\nreturn cljs.core.disj.cljs$core$IFn$_invoke$arity$2(s,k);\n}\n}),xset,xset);\n});\n/**\n * Returns a rel of the elements of xrel with only the keys in ks\n */\nclojure.set.project = (function clojure$set$project(xrel,ks){\nreturn cljs.core.set(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__41705_SHARP_){\nreturn cljs.core.select_keys(p1__41705_SHARP_,ks);\n}),xrel));\n});\n/**\n * Returns the map with the keys in kmap renamed to the vals in kmap\n */\nclojure.set.rename_keys = (function clojure$set$rename_keys(map,kmap){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__41709){\nvar vec__41710 = p__41709;\nvar old = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__41710,(0),null);\nvar new$ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__41710,(1),null);\nif(cljs.core.contains_QMARK_(map,old)){\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,new$,cljs.core.get.cljs$core$IFn$_invoke$arity$2(map,old));\n} else {\nreturn m;\n}\n}),cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,map,cljs.core.keys(kmap)),kmap);\n});\n/**\n * Returns a rel of the maps in xrel with the keys in kmap renamed to the vals in kmap\n */\nclojure.set.rename = (function clojure$set$rename(xrel,kmap){\nreturn cljs.core.set(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__41713_SHARP_){\nreturn clojure.set.rename_keys(p1__41713_SHARP_,kmap);\n}),xrel));\n});\n/**\n * Returns a map of the distinct values of ks in the xrel mapped to a\n * set of the maps in xrel with the corresponding values of ks.\n */\nclojure.set.index = (function clojure$set$index(xrel,ks){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,x){\nvar ik = cljs.core.select_keys(x,ks);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,ik,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$3(m,ik,cljs.core.PersistentHashSet.EMPTY),x));\n}),cljs.core.PersistentArrayMap.EMPTY,xrel);\n});\n/**\n * Returns the map with the vals mapped to the keys.\n */\nclojure.set.map_invert = (function clojure$set$map_invert(m){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m__$1,p__41716){\nvar vec__41717 = p__41716;\nvar k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__41717,(0),null);\nvar v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__41717,(1),null);\nreturn cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m__$1,v,k);\n}),cljs.core.PersistentArrayMap.EMPTY,m);\n});\n/**\n * When passed 2 rels, returns the rel corresponding to the natural\n * join. When passed an additional keymap, joins on the corresponding\n * keys.\n */\nclojure.set.join = (function clojure$set$join(var_args){\nvar G__41725 = arguments.length;\nswitch (G__41725) {\ncase 2:\nreturn clojure.set.join.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn clojure.set.join.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ndefault:\nthrow (new Error([\"Invalid arity: \",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));\n\n}\n});\n\n(clojure.set.join.cljs$core$IFn$_invoke$arity$2 = (function (xrel,yrel){\nif(((cljs.core.seq(xrel)) && (cljs.core.seq(yrel)))){\nvar ks = clojure.set.intersection.cljs$core$IFn$_invoke$arity$2(cljs.core.set(cljs.core.keys(cljs.core.first(xrel))),cljs.core.set(cljs.core.keys(cljs.core.first(yrel))));\nvar vec__41726 = (((cljs.core.count(xrel) <= cljs.core.count(yrel)))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [xrel,yrel], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [yrel,xrel], null));\nvar r = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__41726,(0),null);\nvar s = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__41726,(1),null);\nvar idx = clojure.set.index(r,ks);\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret,x){\nvar found = (function (){var G__41729 = cljs.core.select_keys(x,ks);\nreturn (idx.cljs$core$IFn$_invoke$arity$1 ? idx.cljs$core$IFn$_invoke$arity$1(G__41729) : idx.call(null,G__41729));\n})();\nif(cljs.core.truth_(found)){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__41720_SHARP_,p2__41721_SHARP_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(p1__41720_SHARP_,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([p2__41721_SHARP_,x], 0)));\n}),ret,found);\n} else {\nreturn ret;\n}\n}),cljs.core.PersistentHashSet.EMPTY,s);\n} else {\nreturn cljs.core.PersistentHashSet.EMPTY;\n}\n}));\n\n(clojure.set.join.cljs$core$IFn$_invoke$arity$3 = (function (xrel,yrel,km){\nvar vec__41730 = (((cljs.core.count(xrel) <= cljs.core.count(yrel)))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [xrel,yrel,clojure.set.map_invert(km)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [yrel,xrel,km], null));\nvar r = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__41730,(0),null);\nvar s = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__41730,(1),null);\nvar k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__41730,(2),null);\nvar idx = clojure.set.index(r,cljs.core.vals(k));\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret,x){\nvar found = (function (){var G__41733 = clojure.set.rename_keys(cljs.core.select_keys(x,cljs.core.keys(k)),k);\nreturn (idx.cljs$core$IFn$_invoke$arity$1 ? idx.cljs$core$IFn$_invoke$arity$1(G__41733) : idx.call(null,G__41733));\n})();\nif(cljs.core.truth_(found)){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__41722_SHARP_,p2__41723_SHARP_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(p1__41722_SHARP_,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([p2__41723_SHARP_,x], 0)));\n}),ret,found);\n} else {\nreturn ret;\n}\n}),cljs.core.PersistentHashSet.EMPTY,s);\n}));\n\n(clojure.set.join.cljs$lang$maxFixedArity = 3);\n\n/**\n * Is set1 a subset of set2?\n */\nclojure.set.subset_QMARK_ = (function clojure$set$subset_QMARK_(set1,set2){\nreturn (((cljs.core.count(set1) <= cljs.core.count(set2))) && (cljs.core.every_QMARK_((function (p1__41734_SHARP_){\nreturn cljs.core.contains_QMARK_(set2,p1__41734_SHARP_);\n}),set1)));\n});\n/**\n * Is set1 a superset of set2?\n */\nclojure.set.superset_QMARK_ = (function clojure$set$superset_QMARK_(set1,set2){\nreturn (((cljs.core.count(set1) >= cljs.core.count(set2))) && (cljs.core.every_QMARK_((function (p1__41737_SHARP_){\nreturn cljs.core.contains_QMARK_(set1,p1__41737_SHARP_);\n}),set2)));\n});\n","~:ns-info",["^ ","~:rename-macros",null,"~:renames",["^ "],"~:meta",["^ ","~:file","clojure/set.cljs","~:line",11,"~:column",8,"~:end-line",11,"~:end-column",19,"~:doc","Set operations such as union/intersection.","~:author","Rich Hickey"],"~:ns-aliases",["^ ","~$cljs.loader","~$shadow.loader","~$clojure.pprint","~$cljs.pprint","~$react","~$shadow.js.shim.module$react","~$clojure.spec.alpha","~$cljs.spec.alpha"],"~:use-macros",null,"~:excludes",["~#set",[]],"~:name","~$clojure.set","~:op","~:ns","~:imports",null,"~:requires",["^ ","~$cljs.core","^O","~$goog","^P"],"~:seen",["^H",[]],"~:uses",null,"~:require-macros",["^ ","^O","^O"],"~:form",["~#list",["~$ns","^J"]],"~:flags",["^ "],"~:js-deps",["^ "],"~:deps",["^P","^O"]],"^L","^J","~:resource-id",["~:shadow.build.classpath/resource","clojure/set.cljs"],"~:compiled-at",1613924119390,"~:resource-name","clojure/set.cljs","~:warnings",[],"~:source","; Copyright (c) Rich Hickey. All rights reserved.\n; The use and distribution terms for this software are covered by the\n; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)\n; which can be found in the file epl-v10.html at the root of this distribution.\n; By using this software in any fashion, you are agreeing to be bound by\n; the terms of this license.\n; You must not remove this notice, or any other, from this software.\n\n(ns ^{:doc \"Set operations such as union/intersection.\"\n :author \"Rich Hickey\"}\n clojure.set)\n\n(defn- bubble-max-key [k coll]\n \"Move a maximal element of coll according to fn k (which returns a number) \n to the front of coll.\"\n (let [max (apply max-key k coll)]\n (cons max (remove #(identical? max %) coll))))\n\n(defn union\n \"Return a set that is the union of the input sets\"\n ([] #{})\n ([s1] s1)\n ([s1 s2]\n (if (< (count s1) (count s2))\n (reduce conj s2 s1)\n (reduce conj s1 s2)))\n ([s1 s2 & sets]\n (let [bubbled-sets (bubble-max-key count (conj sets s2 s1))]\n (reduce into (first bubbled-sets) (rest bubbled-sets)))))\n\n(defn intersection\n \"Return a set that is the intersection of the input sets\"\n ([s1] s1)\n ([s1 s2]\n (if (< (count s2) (count s1))\n (recur s2 s1)\n (reduce (fn [result item]\n (if (contains? s2 item)\n\t\t result\n (disj result item)))\n\t s1 s1)))\n ([s1 s2 & sets] \n (let [bubbled-sets (bubble-max-key #(- (count %)) (conj sets s2 s1))]\n (reduce intersection (first bubbled-sets) (rest bubbled-sets)))))\n\n(defn difference\n \"Return a set that is the first set without elements of the remaining sets\"\n ([s1] s1)\n ([s1 s2] \n (if (< (count s1) (count s2))\n (reduce (fn [result item] \n (if (contains? s2 item) \n (disj result item) \n result))\n s1 s1)\n (reduce disj s1 s2)))\n ([s1 s2 & sets] \n (reduce difference s1 (conj sets s2))))\n\n\n(defn select\n \"Returns a set of the elements for which pred is true\"\n [pred xset]\n (reduce (fn [s k] (if (pred k) s (disj s k)))\n xset xset))\n\n(defn project\n \"Returns a rel of the elements of xrel with only the keys in ks\"\n [xrel ks]\n (set (map #(select-keys % ks) xrel)))\n\n(defn rename-keys\n \"Returns the map with the keys in kmap renamed to the vals in kmap\"\n [map kmap]\n (reduce\n (fn [m [old new]]\n (if (contains? map old)\n (assoc m new (get map old))\n m))\n (apply dissoc map (keys kmap)) kmap))\n\n(defn rename\n \"Returns a rel of the maps in xrel with the keys in kmap renamed to the vals in kmap\"\n [xrel kmap]\n (set (map #(rename-keys % kmap) xrel)))\n\n(defn index\n \"Returns a map of the distinct values of ks in the xrel mapped to a\n set of the maps in xrel with the corresponding values of ks.\"\n [xrel ks]\n (reduce\n (fn [m x]\n (let [ik (select-keys x ks)]\n (assoc m ik (conj (get m ik #{}) x))))\n {} xrel))\n \n(defn map-invert\n \"Returns the map with the vals mapped to the keys.\"\n [m] (reduce (fn [m [k v]] (assoc m v k)) {} m))\n\n(defn join\n \"When passed 2 rels, returns the rel corresponding to the natural\n join. When passed an additional keymap, joins on the corresponding\n keys.\"\n ([xrel yrel] ;natural join\n (if (and (seq xrel) (seq yrel))\n (let [ks (intersection (set (keys (first xrel))) (set (keys (first yrel))))\n [r s] (if (<= (count xrel) (count yrel))\n [xrel yrel]\n [yrel xrel])\n idx (index r ks)]\n (reduce (fn [ret x]\n (let [found (idx (select-keys x ks))]\n (if found\n (reduce #(conj %1 (merge %2 x)) ret found)\n ret)))\n #{} s))\n #{}))\n ([xrel yrel km] ;arbitrary key mapping\n (let [[r s k] (if (<= (count xrel) (count yrel))\n [xrel yrel (map-invert km)]\n [yrel xrel km])\n idx (index r (vals k))]\n (reduce (fn [ret x]\n (let [found (idx (rename-keys (select-keys x (keys k)) k))]\n (if found\n (reduce #(conj %1 (merge %2 x)) ret found)\n ret)))\n #{} s))))\n\n(defn subset? \n \"Is set1 a subset of set2?\"\n [set1 set2]\n (and (<= (count set1) (count set2))\n (every? #(contains? set2 %) set1)))\n\n(defn superset? \n \"Is set1 a superset of set2?\"\n [set1 set2]\n (and (>= (count set1) (count set2))\n (every? #(contains? set1 %) set2)))\n\n(comment\n(refer 'set)\n(def xs #{{:a 11 :b 1 :c 1 :d 4}\n {:a 2 :b 12 :c 2 :d 6}\n {:a 3 :b 3 :c 3 :d 8 :f 42}})\n\n(def ys #{{:a 11 :b 11 :c 11 :e 5}\n {:a 12 :b 11 :c 12 :e 3}\n {:a 3 :b 3 :c 3 :e 7 }})\n\n(join xs ys)\n(join xs (rename ys {:b :yb :c :yc}) {:a :a})\n\n(union #{:a :b :c} #{:c :d :e })\n(difference #{:a :b :c} #{:c :d :e})\n(intersection #{:a :b :c} #{:c :d :e})\n\n(index ys [:b]))\n\n","~:reader-features",["^H",["~:cljs"]],"~:cljc",false,"~:source-map-compact",["^ ","mappings","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","names",["clojure.set/bubble-max-key","k","coll","max","cljs.core.apply","cljs.core/max-key","cljs.core/cons","p1__41680#","cljs.core.remove","var_args","G__41685","clojure.set/union","args-arr__4757__auto__","len__4736__auto__","i__4737__auto__","argseq__4758__auto__","cljs.core/IndexedSeq","seq41682","G__41683","cljs.core/first","cljs.core/next","G__41684","self__4723__auto__","s1","s2","cljs.core/count","cljs.core.reduce","cljs.core/conj","sets","bubbled-sets","cljs.core.conj","cljs.core/into","cljs.core/rest","G__41695","clojure.set/intersection","seq41692","G__41693","G__41694","result","item","cljs.core/contains?","cljs.core.disj","p1__41690#","G__41702","clojure.set/difference","seq41699","G__41700","G__41701","cljs.core/disj","clojure.set/select","pred","xset","s","clojure.set/project","xrel","ks","cljs.core/set","p1__41705#","cljs.core.map","cljs.core/select-keys","clojure.set/rename-keys","map","kmap","p__41709","vec__41710","cljs.core.nth","m","old","new","cljs.core.assoc","cljs.core.get","cljs.core/dissoc","cljs.core/keys","clojure.set/rename","p1__41713#","clojure.set/index","x","ik","clojure.set/map-invert","p__41716","vec__41717","v","G__41725","clojure.set/join","js/Error","yrel","cljs.core/seq","vec__41726","clojure.set.intersection","r","idx","ret","found","G__41729","p1__41720#","p2__41721#","cljs.core.merge","km","vec__41730","cljs.core/vals","G__41733","p1__41722#","p2__41723#","clojure.set/subset?","set1","set2","p1__41734#","cljs.core/every?","clojure.set/superset?","p1__41737#"]],"~:used-vars",["^H",["~$cljs.core/rest","~$clojure.set/intersection","~$clojure.set/project","~$clojure.set/index","~$cljs.core/keys","~$clojure.set/bubble-max-key","~$cljs.core/count","~$cljs.core/reduce","~$cljs.core/seq","~$cljs.core/apply","~$cljs.core/dissoc","~$cljs.core/set","~$cljs.core/contains?","~$cljs.core/into","~$cljs.core/conj","~$cljs.core/map","~$clojure.set/rename-keys","~$cljs.core/get","~$cljs.core/remove","~$clojure.set/difference","~$clojure.set/superset?","~$clojure.set/subset?","~$cljs.core/select-keys","~$cljs.core/disj","~$cljs.core/cons","~$cljs.core/assoc","~$clojure.set/union","~$clojure.set/rename","~$clojure.set/map-invert","~$cljs.core/first","~$clojure.set/join","~$cljs.core/merge","~$cljs.core/every?","~$clojure.set/select","~$js/Error"]]],"~:cache-keys",["~#cmap",[["^[","goog/dom/tagname.js"],["6025affb7181cd40418600864f58eed1ea80055d","~:shadow.build.compiler/resolve",["^ ","~:require-id",null,"~:deps-ids",["^H",[]],"~:deps-syms",["^P","~$goog.dom.HtmlElement"]]],["^[","goog/math/math.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","~$goog.array","~$goog.asserts"]]],["^[","goog/html/trustedtypes.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P"]]],["^[","goog/labs/useragent/browser.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","^29","~$goog.labs.userAgent.util","~$goog.object","~$goog.string.internal"]]],["^[","goog/html/safeurl.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","^2:","~$goog.fs.url","~$goog.html.TrustedResourceUrl","~$goog.i18n.bidi.Dir","~$goog.i18n.bidi.DirectionalString","~$goog.string.Const","~$goog.string.TypedString","^2="]]],["^[","goog/array/array.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","^2:"]]],["^[","goog/debug/error.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P"]]],["^[","goog/dom/nodetype.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P"]]],["^[","goog/string/typedstring.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P"]]],["^[","goog/object/object.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P"]]],["^[","goog/dom/asserts.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","^2:"]]],"~:SHADOW-TIMESTAMP",[1598798247000,1598798247000,1592608845000],["^[","goog/math/long.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","^2:","~$goog.reflect"]]],["^[","goog/html/trustedresourceurl.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","^2:","~$goog.html.trustedtypes","^2@","^2A","^2B","^2C"]]],["^[","goog/string/internal.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P"]]],["^[","goog/functions/functions.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P"]]],["^[","goog/html/safestyle.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","^29","^2:","~$goog.html.SafeUrl","^2B","^2C","^2="]]],["^[","goog/dom/safe.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","^2:","~$goog.dom.asserts","~$goog.functions","~$goog.html.SafeHtml","~$goog.html.SafeScript","~$goog.html.SafeStyle","^2G","^2?","~$goog.html.uncheckedconversions","^2B","^2="]]],["^[","goog/structs/map.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","~$goog.iter.Iterator","~$goog.iter.StopIteration"]]],["^[","goog/html/safehtml.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","^29","^2:","~$goog.dom.TagName","~$goog.dom.tags","^2K","^2L","~$goog.html.SafeStyleSheet","^2G","^2?","^2F","^2@","^2A","~$goog.labs.userAgent.browser","^2<","^2B","^2C","^2="]]],["^[","goog/dom/tags.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","^2<"]]],["^[","goog/asserts/asserts.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","~$goog.debug.Error","~$goog.dom.NodeType"]]],["^[","goog/uri/uri.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","^29","^2:","~$goog.string","~$goog.structs","~$goog.structs.Map","~$goog.uri.utils","~$goog.uri.utils.ComponentIndex","~$goog.uri.utils.StandardQueryParam"]]],["^[","goog/i18n/bidi.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P"]]],["^[","goog/fs/url.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P"]]],["^[","goog/base.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",[]]],["^[","goog/structs/structs.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","^29","^2<"]]],["^[","goog/string/string.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","~$goog.dom.safe","^2M","^2B","^2="]]],["^[","goog/reflect/reflect.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P"]]],["^[","goog/labs/useragent/util.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","^2="]]],["^[","goog/string/stringbuffer.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P"]]],["^[","goog/iter/iter.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","^29","^2:","^2I","~$goog.math"]]],["^[","goog/html/uncheckedconversions.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","^2:","^2J","^2K","^2L","^2R","^2G","^2?","^2B","^2="]]],["^[","goog/dom/htmlelement.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P"]]],["^[","cljs/core.cljs"],["9f9729dbbf9b814c83dc189977b447d2ae92b6cd","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","~$goog.math.Long","~$goog.math.Integer","^2V","^2<","^29","~$goog.Uri","~$goog.string.StringBuffer"]]],["^[","goog/html/safescript.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","^2:","^2F","^2B","^2C"]]],["^[","goog/html/safestylesheet.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","^29","^2:","^2L","^2<","^2B","^2C","^2="]]],["^[","goog/math/integer.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","^2E"]]],["^[","clojure/set.cljs"],["9f9729dbbf9b814c83dc189977b447d2ae92b6cd","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","^O"]]],["^[","goog/uri/utils.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","^29","^2:","^2V"]]],["^[","goog/string/const.js"],["6025affb7181cd40418600864f58eed1ea80055d","^24",["^ ","^25",null,"^26",["^H",[]],"^27",["^P","^2:","^2C"]]]]],"~:clj-info",["^ ","jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/env.cljc",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/analyzer.cljc",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/tools.reader/1.3.3/tools.reader-1.3.3.jar!/clojure/tools/reader/default_data_readers.clj",1598798245000,"jar:file:/home/justin/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/string.clj",1592060007000,"jar:file:/home/justin/.m2/repository/org/clojure/tools.reader/1.3.3/tools.reader-1.3.3.jar!/clojure/tools/reader/impl/errors.clj",1598798245000,"jar:file:/home/justin/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/pprint.clj",1592060007000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/externs.clj",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/core.cljc",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/instant.clj",1592060007000,"jar:file:/home/justin/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/set.clj",1592060007000,"jar:file:/home/justin/.m2/repository/org/clojure/tools.reader/1.3.3/tools.reader-1.3.3.jar!/clojure/tools/reader/reader_types.clj",1598798245000,"jar:file:/home/justin/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/edn.clj",1592060007000,"jar:file:/home/justin/.m2/repository/org/clojure/tools.reader/1.3.3/tools.reader-1.3.3.jar!/clojure/tools/reader.clj",1598798245000,"jar:file:/home/justin/.m2/repository/org/clojure/tools.reader/1.3.3/tools.reader-1.3.3.jar!/clojure/tools/reader/impl/inspect.clj",1598798245000,"jar:file:/home/justin/.m2/repository/org/clojure/data.json/1.0.0/data.json-1.0.0.jar!/clojure/data/json.clj",1592063582000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/util.cljc",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/source_map/base64_vlq.clj",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/js_deps.cljc",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/java/io.clj",1592060007000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/compiler.cljc",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/tagged_literals.cljc",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar!/clojure/core.clj",1592060007000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/source_map.clj",1592608845000,"jar:file:/home/justin/.m2/repository/org/clojure/clojurescript/1.10.773/clojurescript-1.10.773.jar!/cljs/source_map/base64.clj",1592608845000],"~:analyzer",["^ ","^3",null,"^4",["^ "],"^5",["^ ","^6","clojure/set.cljs","^7",11,"^8",8,"^9",11,"^:",19,"^;","Set operations such as union/intersection.","^<","Rich Hickey"],"^=",["^ ","^>","^?","^@","^A","^B","^C","^D","^E"],"^F",null,"^G",["^H",[]],"^I","^J","^M",null,"^N",["^ ","^O","^O","^P","^P"],"^Q",["^H",[]],"~:shadow/js-access-global",["^H",["Error"]],"^R",null,"~:defs",["^ ","~$union",["^ ","~:protocol-inline",null,"^5",["^ ","^6","clojure/set.cljs","^7",19,"^8",7,"^9",19,"^:",12,"~:arglists",["^U",["~$quote",["^U",[[],["~$s1"],["^3V","~$s2"],["^3V","^3W","~$&","~$sets"]]]]],"^;","Return a set that is the union of the input sets","~:top-fn",["^ ","~:variadic?",true,"~:fixed-arity",2,"~:max-fixed-arity",2,"~:method-params",[[],["^3V"],["^3V","^3W"]],"^3T",["^U",[[],["^3V"],["^3V","^3W"],["^3V","^3W","~$&","^3X"]]],"~:arglists-meta",["^U",[null,null,null,null]]]],"^I","^1U","^6","clojure/set.cljs","^:",12,"^3Y",["^ ","^3Z",true,"^3[",2,"^40",2,"^41",[[],["^3V"],["^3V","^3W"]],"^3T",["^U",[[],["^3V"],["^3V","^3W"],["^3V","^3W","~$&","^3X"]]],"^42",["^U",[null,null,null,null]]],"^41",[[],["^3V"],["^3V","^3W"]],"~:protocol-impl",null,"^3[",2,"^42",["^U",[null,null,null,null]],"^8",1,"^3Z",true,"~:methods",[["^ ","^3[",0,"^3Z",false,"~:tag","~$cljs.core/ISet"],["^ ","^3[",1,"^3Z",false],["^ ","^3[",2,"^3Z",false,"^45",["^H",[null,"~$any"]]],["^ ","^3[",2,"^3Z",true,"^45",["^H",[null,"^47"]]]],"^7",19,"^9",19,"^40",2,"~:fn-var",true,"^3T",["^U",[[],["^3V"],["^3V","^3W"],["^3V","^3W","~$&","^3X"]]],"^;","Return a set that is the union of the input sets"],"~$map-invert",["^ ","^3S",null,"^5",["^ ","^6","clojure/set.cljs","^7",97,"^8",7,"^9",97,"^:",17,"^3T",["^U",["^3U",["^U",[["~$m"]]]]],"^;","Returns the map with the vals mapped to the keys."],"^I","^1W","^6","clojure/set.cljs","^:",17,"^41",["^U",[["~$m"]]],"^43",null,"^42",["^U",[null,null]],"^8",1,"^3Z",false,"^7",97,"~:ret-tag",["^H",[null,"^47"]],"^9",97,"^40",1,"^48",true,"^3T",["^U",["^3U",["^U",[["~$m"]]]]],"^;","Returns the map with the vals mapped to the keys."],"~$join",["^ ","^3S",null,"^5",["^ ","^6","clojure/set.cljs","^7",101,"^8",7,"^9",101,"^:",11,"^3T",["^U",["^3U",["^U",[["~$xrel","~$yrel"],["^4<","^4=","~$km"]]]]],"^;","When passed 2 rels, returns the rel corresponding to the natural\n join. When passed an additional keymap, joins on the corresponding\n keys.","^3Y",["^ ","^3Z",false,"^3[",3,"^40",3,"^41",[["^4<","^4="],["^4<","^4=","^4>"]],"^3T",["^U",[["^4<","^4="],["^4<","^4=","^4>"]]],"^42",["^U",[null,null]]]],"^I","^1Y","^6","clojure/set.cljs","^:",11,"^3Y",["^ ","^3Z",false,"^3[",3,"^40",3,"^41",[["^4<","^4="],["^4<","^4=","^4>"]],"^3T",["^U",[["^4<","^4="],["^4<","^4=","^4>"]]],"^42",["^U",[null,null]]],"^41",[["^4<","^4="],["^4<","^4=","^4>"]],"^43",null,"^3[",3,"^42",["^U",[null,null]],"^8",1,"^3Z",false,"^44",[["^ ","^3[",2,"^3Z",false,"^45",["^H",[null,"^47","^46"]]],["^ ","^3[",3,"^3Z",false,"^45",["^H",[null,"^47"]]]],"^7",101,"^9",101,"^40",3,"^48",true,"^3T",["^U",[["^4<","^4="],["^4<","^4=","^4>"]]],"^;","When passed 2 rels, returns the rel corresponding to the natural\n join. When passed an additional keymap, joins on the corresponding\n keys."],"~$select",["^ ","^3S",null,"^5",["^ ","^6","clojure/set.cljs","^7",61,"^8",7,"^9",61,"^:",13,"^3T",["^U",["^3U",["^U",[["~$pred","~$xset"]]]]],"^;","Returns a set of the elements for which pred is true"],"^I","^20","^6","clojure/set.cljs","^:",13,"^41",["^U",[["^4@","^4A"]]],"^43",null,"^42",["^U",[null,null]],"^8",1,"^3Z",false,"^7",61,"^4:",["^H",[null,"^47"]],"^9",61,"^40",2,"^48",true,"^3T",["^U",["^3U",["^U",[["^4@","^4A"]]]]],"^;","Returns a set of the elements for which pred is true"],"~$intersection",["^ ","^3S",null,"^5",["^ ","^6","clojure/set.cljs","^7",31,"^8",7,"^9",31,"^:",19,"^3T",["^U",["^3U",["^U",[["^3V"],["^3V","^3W"],["^3V","^3W","~$&","^3X"]]]]],"^;","Return a set that is the intersection of the input sets","^3Y",["^ ","^3Z",true,"^3[",2,"^40",2,"^41",[["^3V"],["^3V","^3W"]],"^3T",["^U",[["^3V"],["^3V","^3W"],["^3V","^3W","~$&","^3X"]]],"^42",["^U",[null,null,null]]]],"^I","^1<","^6","clojure/set.cljs","^:",19,"^3Y",["^ ","^3Z",true,"^3[",2,"^40",2,"^41",[["^3V"],["^3V","^3W"]],"^3T",["^U",[["^3V"],["^3V","^3W"],["^3V","^3W","~$&","^3X"]]],"^42",["^U",[null,null,null]]],"^41",[["^3V"],["^3V","^3W"]],"^43",null,"^3[",2,"^42",["^U",[null,null,null]],"^8",1,"^3Z",true,"^44",[["^ ","^3[",1,"^3Z",false],["^ ","^3[",2,"^3Z",false,"^45",["^H",[null,"^47"]]],["^ ","^3[",2,"^3Z",true,"^45",["^H",[null,"^47"]]]],"^7",31,"^9",31,"^40",2,"^48",true,"^3T",["^U",[["^3V"],["^3V","^3W"],["^3V","^3W","~$&","^3X"]]],"^;","Return a set that is the intersection of the input sets"],"~$superset?",["^ ","^3S",null,"^5",["^ ","^6","clojure/set.cljs","^7",137,"^8",7,"^9",137,"^:",16,"^3T",["^U",["^3U",["^U",[["~$set1","~$set2"]]]]],"^;","Is set1 a superset of set2?"],"^I","^1O","^6","clojure/set.cljs","^:",16,"^41",["^U",[["^4D","^4E"]]],"^43",null,"^42",["^U",[null,null]],"^8",1,"^3Z",false,"^7",137,"^4:","~$boolean","^9",137,"^40",2,"^48",true,"^3T",["^U",["^3U",["^U",[["^4D","^4E"]]]]],"^;","Is set1 a superset of set2?"],"~$index",["^ ","^3S",null,"^5",["^ ","^6","clojure/set.cljs","^7",87,"^8",7,"^9",87,"^:",12,"^3T",["^U",["^3U",["^U",[["^4<","~$ks"]]]]],"^;","Returns a map of the distinct values of ks in the xrel mapped to a\n set of the maps in xrel with the corresponding values of ks."],"^I","^1>","^6","clojure/set.cljs","^:",12,"^41",["^U",[["^4<","^4H"]]],"^43",null,"^42",["^U",[null,null]],"^8",1,"^3Z",false,"^7",87,"^4:",["^H",[null,"^47"]],"^9",87,"^40",2,"^48",true,"^3T",["^U",["^3U",["^U",[["^4<","^4H"]]]]],"^;","Returns a map of the distinct values of ks in the xrel mapped to a\n set of the maps in xrel with the corresponding values of ks."],"~$bubble-max-key",["^ ","^3S",null,"^5",["^ ","^6","clojure/set.cljs","^7",13,"^8",8,"^9",13,"^:",22,"~:private",true,"^3T",["^U",["^3U",["^U",[["~$k","~$coll"]]]]]],"^4J",true,"^I","^1@","^6","clojure/set.cljs","^:",22,"^41",["^U",[["~$k","^4K"]]],"^43",null,"^42",["^U",[null,null]],"^8",1,"^3Z",false,"^7",13,"^4:","~$clj","^9",13,"^40",2,"^48",true,"^3T",["^U",["^3U",["^U",[["~$k","^4K"]]]]]],"~$subset?",["^ ","^3S",null,"^5",["^ ","^6","clojure/set.cljs","^7",131,"^8",7,"^9",131,"^:",14,"^3T",["^U",["^3U",["^U",[["^4D","^4E"]]]]],"^;","Is set1 a subset of set2?"],"^I","^1P","^6","clojure/set.cljs","^:",14,"^41",["^U",[["^4D","^4E"]]],"^43",null,"^42",["^U",[null,null]],"^8",1,"^3Z",false,"^7",131,"^4:","^4F","^9",131,"^40",2,"^48",true,"^3T",["^U",["^3U",["^U",[["^4D","^4E"]]]]],"^;","Is set1 a subset of set2?"],"~$rename",["^ ","^3S",null,"^5",["^ ","^6","clojure/set.cljs","^7",82,"^8",7,"^9",82,"^:",13,"^3T",["^U",["^3U",["^U",[["^4<","~$kmap"]]]]],"^;","Returns a rel of the maps in xrel with the keys in kmap renamed to the vals in kmap"],"^I","^1V","^6","clojure/set.cljs","^:",13,"^41",["^U",[["^4<","^4O"]]],"^43",null,"^42",["^U",[null,null]],"^8",1,"^3Z",false,"^7",82,"^4:",["^H",["^4L","^47","^46","~$cljs.core/MetaFn","~$clj-nil"]],"^9",82,"^40",2,"^48",true,"^3T",["^U",["^3U",["^U",[["^4<","^4O"]]]]],"^;","Returns a rel of the maps in xrel with the keys in kmap renamed to the vals in kmap"],"~$rename-keys",["^ ","^3S",null,"^5",["^ ","^6","clojure/set.cljs","^7",72,"^8",7,"^9",72,"^:",18,"^3T",["^U",["^3U",["^U",[["~$map","^4O"]]]]],"^;","Returns the map with the keys in kmap renamed to the vals in kmap"],"^I","^1K","^6","clojure/set.cljs","^:",18,"^41",["^U",[["^4S","^4O"]]],"^43",null,"^42",["^U",[null,null]],"^8",1,"^3Z",false,"^7",72,"^4:",["^H",[null,"^47"]],"^9",72,"^40",2,"^48",true,"^3T",["^U",["^3U",["^U",[["^4S","^4O"]]]]],"^;","Returns the map with the keys in kmap renamed to the vals in kmap"],"~$project",["^ ","^3S",null,"^5",["^ ","^6","clojure/set.cljs","^7",67,"^8",7,"^9",67,"^:",14,"^3T",["^U",["^3U",["^U",[["^4<","^4H"]]]]],"^;","Returns a rel of the elements of xrel with only the keys in ks"],"^I","^1=","^6","clojure/set.cljs","^:",14,"^41",["^U",[["^4<","^4H"]]],"^43",null,"^42",["^U",[null,null]],"^8",1,"^3Z",false,"^7",67,"^4:",["^H",["^4L","^47","^46","^4P","^4Q"]],"^9",67,"^40",2,"^48",true,"^3T",["^U",["^3U",["^U",[["^4<","^4H"]]]]],"^;","Returns a rel of the elements of xrel with only the keys in ks"],"~$difference",["^ ","^3S",null,"^5",["^ ","^6","clojure/set.cljs","^7",46,"^8",7,"^9",46,"^:",17,"^3T",["^U",["^3U",["^U",[["^3V"],["^3V","^3W"],["^3V","^3W","~$&","^3X"]]]]],"^;","Return a set that is the first set without elements of the remaining sets","^3Y",["^ ","^3Z",true,"^3[",2,"^40",2,"^41",[["^3V"],["^3V","^3W"]],"^3T",["^U",[["^3V"],["^3V","^3W"],["^3V","^3W","~$&","^3X"]]],"^42",["^U",[null,null,null]]]],"^I","^1N","^6","clojure/set.cljs","^:",17,"^3Y",["^ ","^3Z",true,"^3[",2,"^40",2,"^41",[["^3V"],["^3V","^3W"]],"^3T",["^U",[["^3V"],["^3V","^3W"],["^3V","^3W","~$&","^3X"]]],"^42",["^U",[null,null,null]]],"^41",[["^3V"],["^3V","^3W"]],"^43",null,"^3[",2,"^42",["^U",[null,null,null]],"^8",1,"^3Z",true,"^44",[["^ ","^3[",1,"^3Z",false],["^ ","^3[",2,"^3Z",false,"^45",["^H",[null,"^47"]]],["^ ","^3[",2,"^3Z",true,"^45",["^H",[null,"^47"]]]],"^7",46,"^9",46,"^40",2,"^48",true,"^3T",["^U",[["^3V"],["^3V","^3W"],["^3V","^3W","~$&","^3X"]]],"^;","Return a set that is the first set without elements of the remaining sets"]],"^S",["^ ","^O","^O"],"^W",["^ "],"^X",["^ "],"^Y",["^P","^O"]],"^L","^J","~:ns-specs",["^ "],"~:ns-spec-vars",["^H",[]],"~:compiler-options",["^23",[["^4X","~:static-fns"],true,["^4X","~:shadow-tweaks"],null,["^4X","~:source-map-inline"],null,["^4X","~:elide-asserts"],false,["^4X","~:optimize-constants"],null,["^4X","^12"],null,["^4X","~:external-config"],null,["^4X","~:tooling-config"],null,["^4X","~:emit-constants"],null,["^4X","~:load-tests"],null,["^4X","~:form-size-threshold"],null,["^4X","~:data-readers"],null,["^4X","~:infer-externs"],"~:auto",["^4X","^14"],null,["~:js-options","~:js-provider"],"~:require",["~:mode"],"~:dev",["^4X","~:fn-invoke-direct"],null,["^4X","~:source-map"],"/dev/null"]]]