1 line
50 KiB
JSON
1 line
50 KiB
JSON
["^ ","~: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__19775_SHARP_){\nreturn (max === p1__19775_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__19784 = arguments.length;\nswitch (G__19784) {\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__5751__auto__ = [];\nvar len__5726__auto___19904 = arguments.length;\nvar i__5727__auto___19905 = (0);\nwhile(true){\nif((i__5727__auto___19905 < len__5726__auto___19904)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___19905]));\n\nvar G__19908 = (i__5727__auto___19905 + (1));\ni__5727__auto___19905 = G__19908;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ = ((((2) < args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn clojure.set.union.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__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 (seq19781){\nvar G__19782 = cljs.core.first(seq19781);\nvar seq19781__$1 = cljs.core.next(seq19781);\nvar G__19783 = cljs.core.first(seq19781__$1);\nvar seq19781__$2 = cljs.core.next(seq19781__$1);\nvar self__5711__auto__ = this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__19782,G__19783,seq19781__$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__19805 = arguments.length;\nswitch (G__19805) {\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__5751__auto__ = [];\nvar len__5726__auto___19920 = arguments.length;\nvar i__5727__auto___19921 = (0);\nwhile(true){\nif((i__5727__auto___19921 < len__5726__auto___19920)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___19921]));\n\nvar G__19922 = (i__5727__auto___19921 + (1));\ni__5727__auto___19921 = G__19922;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ = ((((2) < args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn clojure.set.intersection.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__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__19930 = s2;\nvar G__19931 = s1;\ns1 = G__19930;\ns2 = G__19931;\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__19799_SHARP_){\nreturn (- cljs.core.count(p1__19799_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 (seq19802){\nvar G__19803 = cljs.core.first(seq19802);\nvar seq19802__$1 = cljs.core.next(seq19802);\nvar G__19804 = cljs.core.first(seq19802__$1);\nvar seq19802__$2 = cljs.core.next(seq19802__$1);\nvar self__5711__auto__ = this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__19803,G__19804,seq19802__$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__19818 = arguments.length;\nswitch (G__19818) {\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__5751__auto__ = [];\nvar len__5726__auto___19940 = arguments.length;\nvar i__5727__auto___19941 = (0);\nwhile(true){\nif((i__5727__auto___19941 < len__5726__auto___19940)){\nargs_arr__5751__auto__.push((arguments[i__5727__auto___19941]));\n\nvar G__19942 = (i__5727__auto___19941 + (1));\ni__5727__auto___19941 = G__19942;\ncontinue;\n} else {\n}\nbreak;\n}\n\nvar argseq__5752__auto__ = ((((2) < args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);\nreturn clojure.set.difference.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__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 (seq19815){\nvar G__19816 = cljs.core.first(seq19815);\nvar seq19815__$1 = cljs.core.next(seq19815);\nvar G__19817 = cljs.core.first(seq19815__$1);\nvar seq19815__$2 = cljs.core.next(seq19815__$1);\nvar self__5711__auto__ = this;\nreturn self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__19816,G__19817,seq19815__$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__19828_SHARP_){\nreturn cljs.core.select_keys(p1__19828_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__19835){\nvar vec__19836 = p__19835;\nvar old = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19836,(0),null);\nvar new$ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19836,(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__19846_SHARP_){\nreturn clojure.set.rename_keys(p1__19846_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.persistent_BANG_(cljs.core.reduce_kv((function (m__$1,k,v){\nreturn cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m__$1,v,k);\n}),cljs.core.transient$(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__19864 = arguments.length;\nswitch (G__19864) {\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__19870 = (((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__19870,(0),null);\nvar s = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19870,(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__19879 = cljs.core.select_keys(x,ks);\nreturn (idx.cljs$core$IFn$_invoke$arity$1 ? idx.cljs$core$IFn$_invoke$arity$1(G__19879) : idx.call(null, G__19879));\n})();\nif(cljs.core.truth_(found)){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__19856_SHARP_,p2__19857_SHARP_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(p1__19856_SHARP_,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([p2__19857_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__19880 = (((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__19880,(0),null);\nvar s = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19880,(1),null);\nvar k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__19880,(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__19884 = 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__19884) : idx.call(null, G__19884));\n})();\nif(cljs.core.truth_(found)){\nreturn cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__19858_SHARP_,p2__19860_SHARP_){\nreturn cljs.core.conj.cljs$core$IFn$_invoke$arity$2(p1__19858_SHARP_,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([p2__19860_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__19886_SHARP_){\nreturn cljs.core.contains_QMARK_(set2,p1__19886_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__19890_SHARP_){\nreturn cljs.core.contains_QMARK_(set1,p1__19890_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","~$clojure.spec.alpha","~$cljs.spec.alpha"],"~:use-macros",null,"~:excludes",["~#set",[]],"~:name","~$clojure.set","~:reader-aliases",["^ "],"~:op","~:ns","~:imports",null,"~:requires",["^ ","~$cljs.core","^N","~$goog","^O"],"~:seen",["^F",[]],"~:uses",null,"~:require-macros",["^ ","^N","^N"],"~:form",["~#list",["~$ns","^H"]],"~:flags",["^ "],"~:js-deps",[],"~:deps",["^O","^N"]],"^K","^H","~:resource-id",["~:shadow.build.classpath/resource","clojure/set.cljs"],"~:compiled-at",1738694992555,"^I",["^ ","^N","^N","^O","^O"],"~: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]\n (persistent!\n (reduce-kv (fn [m k v] (assoc! m v k))\n (transient {})\n 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",["^F",["~:cljs"]],"~:used-var-namespaces",["^F",["^N","~$js","^H"]],"~: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__19775#","cljs.core.remove","var_args","G__19784","clojure.set/union","args-arr__5751__auto__","len__5726__auto__","i__5727__auto__","argseq__5752__auto__","cljs.core/IndexedSeq","seq19781","G__19782","cljs.core/first","cljs.core/next","G__19783","self__5711__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__19805","clojure.set/intersection","seq19802","G__19803","G__19804","result","item","cljs.core/contains?","cljs.core.disj","p1__19799#","G__19818","clojure.set/difference","seq19815","G__19816","G__19817","cljs.core/disj","clojure.set/select","pred","xset","s","clojure.set/project","xrel","ks","cljs.core/set","p1__19828#","cljs.core.map","cljs.core/select-keys","clojure.set/rename-keys","map","kmap","p__19835","vec__19836","cljs.core.nth","m","old","new","cljs.core.assoc","cljs.core.get","cljs.core/dissoc","cljs.core/keys","clojure.set/rename","p1__19846#","clojure.set/index","x","ik","clojure.set/map-invert","cljs.core/persistent!","cljs.core/reduce-kv","v","cljs.core.assoc_BANG_","cljs.core/transient","G__19864","clojure.set/join","js/Error","yrel","cljs.core/seq","vec__19870","clojure.set.intersection","r","idx","ret","found","G__19879","p1__19856#","p2__19857#","cljs.core.merge","km","vec__19880","cljs.core/vals","G__19884","p1__19858#","p2__19860#","clojure.set/subset?","set1","set2","p1__19886#","cljs.core/every?","clojure.set/superset?","p1__19890#"]],"~:used-vars",["^F",["~$cljs.core/rest","~$clojure.set/intersection","~$clojure.set/project","~$clojure.set/index","~$cljs.core/keys","~$clojure.set/bubble-max-key","~$cljs.core/IndexedSeq","~$cljs.core/count","~$cljs.core/reduce","~$cljs.core/seq","~$cljs.core/apply","~$cljs.core/dissoc","~$cljs.core/max-key","~$cljs.core/set","~$cljs.core/contains?","~$cljs.core/into","~$cljs.core/conj","~$cljs.core/map","~$clojure.set/rename-keys","~$cljs.core/vals","~$cljs.core/get","~$cljs.core/remove","~$clojure.set/difference","~$clojure.set/superset?","~$cljs.core/persistent!","~$cljs.core/nth","~$clojure.set/subset?","~$cljs.core/next","~$cljs.core/select-keys","~$cljs.core/transient","~$cljs.core/disj","~$cljs.core/cons","~$cljs.core/assoc","~$clojure.set/union","~$cljs.core/reduce-kv","~$clojure.set/rename","~$clojure.set/map-invert","~$cljs.core/first","~$cljs.core/assoc!","~$clojure.set/join","~$cljs.core/merge","~$cljs.core/every?","~$clojure.set/select","~$js/Error"]]],"~:cache-keys",["~#cmap",[["^Z","goog/dom/tagname.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","~:shadow.build.compiler/resolve",["^ ","~:require-id",null,"~:deps-ids",["^F",[]],"~:deps-syms",["^O","~$goog.dom.HtmlElement"]]],["^Z","goog/html/trustedtypes.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O"]]],["^Z","goog/labs/useragent/browser.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","~$goog.labs.userAgent.util","~$goog.labs.userAgent.highEntropy.highEntropyValue","~$goog.asserts","~$goog.string.internal","~$goog.labs.userAgent.highEntropy.highEntropyData","~$goog.labs.userAgent"]]],["^Z","goog/html/safeurl.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","^2E","~$goog.fs.url","~$goog.html.TrustedResourceUrl","~$goog.string.Const","~$goog.string.TypedString","^2F"]]],["^Z","goog/array/array.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","^2E"]]],["^Z","goog/debug/error.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O"]]],["^Z","goog/flags/flags.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O"]]],["^Z","goog/dom/nodetype.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O"]]],["^Z","goog/labs/useragent/highentropy/highentropyvalue.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","^2C","^2F"]]],["^Z","goog/string/typedstring.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O"]]],["^Z","goog/object/object.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O"]]],["^Z","goog/dom/asserts.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","^2E"]]],"~:SHADOW-TIMESTAMP",[1738694855000,1738694855000,1706975115000],["^Z","goog/math/long.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","^2E","~$goog.reflect"]]],["^Z","goog/html/trustedresourceurl.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","^2E","~$goog.fs.blob","^2I","~$goog.html.SafeScript","~$goog.html.trustedtypes","^2K","^2L"]]],["^Z","goog/string/internal.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O"]]],["^Z","goog/functions/functions.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O"]]],["^Z","goog/html/safestyle.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","^2K","~$goog.html.SafeUrl","^2L","^2E","^2F"]]],["^Z","goog/dom/safe.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","^2E","~$goog.asserts.dom","~$goog.dom.asserts","~$goog.functions","~$goog.html.SafeHtml","^2P","~$goog.html.SafeStyle","^2R","^2J","~$goog.html.uncheckedconversions","^2K","^2F"]]],["^Z","goog/asserts/dom.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","~$goog.dom.TagName","^2E","~$goog.dom.element"]]],["^Z","goog/html/safehtml.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","^2K","^2P","^2W","~$goog.html.SafeStyleSheet","^2R","^2Y","^2J","^2L","^2E","~$goog.labs.userAgent.browser","~$goog.array","~$goog.object","^2F","~$goog.dom.tags","^2Q"]]],["^Z","goog/dom/tags.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","^32"]]],["^Z","goog/fs/blob.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O"]]],["^Z","goog/asserts/asserts.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","~$goog.debug.Error","~$goog.dom.NodeType"]]],["^Z","goog/uri/uri.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","^31","^2E","~$goog.collections.maps","~$goog.string","~$goog.structs","~$goog.uri.utils","~$goog.uri.utils.ComponentIndex","~$goog.uri.utils.StandardQueryParam"]]],["^Z","goog/labs/useragent/highentropy/highentropydata.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","^2D"]]],["^Z","goog/collections/maps.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O"]]],["^Z","goog/fs/url.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O"]]],["^Z","goog/base.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",[]]],["^Z","goog/structs/structs.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","^31","^32"]]],["^Z","goog/string/string.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","~$goog.dom.safe","^2X","^2K","^2F"]]],["^Z","goog/reflect/reflect.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O"]]],["^Z","goog/labs/useragent/util.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","^2F","^2H"]]],["^Z","goog/string/stringbuffer.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O"]]],["^Z","goog/labs/useragent/useragent.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","~$goog.flags"]]],["^Z","goog/dom/element.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","^35","^2Y"]]],["^Z","goog/html/uncheckedconversions.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","^2E","^2V","^2P","^2W","^2[","^2R","^2J","^2K","^2F"]]],["^Z","goog/dom/htmlelement.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O"]]],["^Z","cljs/core.cljs"],["b89362aeac5c1cafea76c798929ee5d385c461d8","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","~$goog.math.Long","~$goog.math.Integer","^37","^32","^31","~$goog.Uri","~$goog.string.StringBuffer"]]],["^Z","goog/html/safescript.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","^2K","^2L","^2Q","^2E"]]],["^Z","goog/html/safestylesheet.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","^2K","^2W","^2L","^32","^2E","^2F"]]],["^Z","goog/math/integer.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","^2N"]]],["^Z","clojure/set.cljs"],["b89362aeac5c1cafea76c798929ee5d385c461d8","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","^N"]]],["^Z","goog/uri/utils.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","^2E","^37"]]],["^Z","goog/string/const.js"],["533ce2bdbb7925db781449abb6527af1e6c5e782","^2>",["^ ","^2?",null,"^2@",["^F",[]],"^2A",["^O","^2E","^2L"]]]]],"~:clj-info",["^ ","jar:file:/home/kahr/.m2/repository/org/clojure/clojurescript/1.11.132/clojurescript-1.11.132.jar!/cljs/vendor/clojure/data/json.clj",1706975115000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojurescript/1.11.132/clojurescript-1.11.132.jar!/cljs/util.cljc",1706975115000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojurescript/1.11.132/clojurescript-1.11.132.jar!/cljs/analyzer.cljc",1706975115000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojurescript/1.11.132/clojurescript-1.11.132.jar!/cljs/analyzer/impl.cljc",1706975115000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojurescript/1.11.132/clojurescript-1.11.132.jar!/cljs/source_map/base64.clj",1706975115000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojurescript/1.11.132/clojurescript-1.11.132.jar!/cljs/analyzer/passes/and_or.cljc",1706975115000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojure/1.11.1/clojure-1.11.1.jar!/clojure/instant.clj",1706975110000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojurescript/1.11.132/clojurescript-1.11.132.jar!/cljs/source_map.clj",1706975115000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojurescript/1.11.132/clojurescript-1.11.132.jar!/cljs/vendor/clojure/tools/reader/reader_types.clj",1706975115000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojure/1.11.1/clojure-1.11.1.jar!/clojure/core.clj",1706975110000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojure/1.11.1/clojure-1.11.1.jar!/clojure/string.clj",1706975110000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojurescript/1.11.132/clojurescript-1.11.132.jar!/cljs/analyzer/passes.cljc",1706975115000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojurescript/1.11.132/clojurescript-1.11.132.jar!/cljs/core.cljc",1706975115000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojurescript/1.11.132/clojurescript-1.11.132.jar!/cljs/vendor/clojure/tools/reader/default_data_readers.clj",1706975115000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojurescript/1.11.132/clojurescript-1.11.132.jar!/cljs/externs.clj",1706975115000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojurescript/1.11.132/clojurescript-1.11.132.jar!/cljs/js_deps.cljc",1706975115000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojurescript/1.11.132/clojurescript-1.11.132.jar!/cljs/tagged_literals.cljc",1706975115000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojurescript/1.11.132/clojurescript-1.11.132.jar!/cljs/vendor/clojure/tools/reader.clj",1706975115000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojure/1.11.1/clojure-1.11.1.jar!/clojure/java/io.clj",1706975110000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojure/1.11.1/clojure-1.11.1.jar!/clojure/set.clj",1706975110000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojurescript/1.11.132/clojurescript-1.11.132.jar!/cljs/vendor/clojure/tools/reader/impl/inspect.clj",1706975115000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojure/1.11.1/clojure-1.11.1.jar!/clojure/pprint.clj",1706975110000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojurescript/1.11.132/clojurescript-1.11.132.jar!/cljs/source_map/base64_vlq.clj",1706975115000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojurescript/1.11.132/clojurescript-1.11.132.jar!/cljs/env.cljc",1706975115000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojurescript/1.11.132/clojurescript-1.11.132.jar!/cljs/vendor/clojure/tools/reader/impl/errors.clj",1706975115000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojurescript/1.11.132/clojurescript-1.11.132.jar!/cljs/compiler.cljc",1706975115000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojure/1.11.1/clojure-1.11.1.jar!/clojure/edn.clj",1706975110000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojurescript/1.11.132/clojurescript-1.11.132.jar!/cljs/instant.clj",1706975115000,"jar:file:/home/kahr/.m2/repository/org/clojure/clojurescript/1.11.132/clojurescript-1.11.132.jar!/cljs/analyzer/impl/namespaces.cljc",1706975115000],"~: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",null,"^E",["^F",[]],"^G","^H","^I",["^ "],"^L",null,"^M",["^ ","^N","^N","^O","^O"],"^P",["^F",[]],"~:shadow/js-access-global",["^F",["Error"]],"^Q",null,"~:defs",["^ ","~$union",["^ ","~:protocol-inline",null,"^5",["^ ","^6","clojure/set.cljs","^7",19,"^8",7,"^9",19,"^:",12,"~:arglists",["^T",["~$quote",["^T",[[],["~$s1"],["^4;","~$s2"],["^4;","^4<","~$&","~$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",[[],["^4;"],["^4;","^4<"]],"^49",["^T",[[],["^4;"],["^4;","^4<"],["^4;","^4<","~$&","^4="]]],"~:arglists-meta",["^T",[null,null,null,null]]]],"^G","^21","^6","clojure/set.cljs","^:",12,"^4>",["^ ","^4?",true,"^4@",2,"^4A",2,"^4B",[[],["^4;"],["^4;","^4<"]],"^49",["^T",[[],["^4;"],["^4;","^4<"],["^4;","^4<","~$&","^4="]]],"^4C",["^T",[null,null,null,null]]],"^4B",[[],["^4;"],["^4;","^4<"]],"~:protocol-impl",null,"^4@",2,"^4C",["^T",[null,null,null,null]],"^8",1,"^4?",true,"~:methods",[["^ ","^4@",0,"^4?",false,"~:tag","~$cljs.core/ISet"],["^ ","^4@",1,"^4?",false],["^ ","^4@",2,"^4?",false,"^4F",["^F",[null,"~$any"]]],["^ ","^4@",2,"^4?",true,"^4F",["^F",[null,"^4H"]]]],"^7",19,"^9",19,"^4A",2,"~:fn-var",true,"^49",["^T",[[],["^4;"],["^4;","^4<"],["^4;","^4<","~$&","^4="]]],"^;","Return a set that is the union of the input sets"],"~$map-invert",["^ ","^48",null,"^5",["^ ","^6","clojure/set.cljs","^7",97,"^8",7,"^9",97,"^:",17,"^49",["^T",["^4:",["^T",[["~$m"]]]]],"^;","Returns the map with the vals mapped to the keys."],"^G","^24","^6","clojure/set.cljs","^:",17,"^4B",["^T",[["~$m"]]],"^4D",null,"^4C",["^T",[null,null]],"^8",1,"^4?",false,"^7",97,"~:ret-tag","~$clj","^9",97,"^4A",1,"^4I",true,"^49",["^T",["^4:",["^T",[["~$m"]]]]],"^;","Returns the map with the vals mapped to the keys."],"~$join",["^ ","^48",null,"^5",["^ ","^6","clojure/set.cljs","^7",105,"^8",7,"^9",105,"^:",11,"^49",["^T",["^4:",["^T",[["~$xrel","~$yrel"],["^4N","^4O","~$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.","^4>",["^ ","^4?",false,"^4@",3,"^4A",3,"^4B",[["^4N","^4O"],["^4N","^4O","^4P"]],"^49",["^T",[["^4N","^4O"],["^4N","^4O","^4P"]]],"^4C",["^T",[null,null]]]],"^G","^27","^6","clojure/set.cljs","^:",11,"^4>",["^ ","^4?",false,"^4@",3,"^4A",3,"^4B",[["^4N","^4O"],["^4N","^4O","^4P"]],"^49",["^T",[["^4N","^4O"],["^4N","^4O","^4P"]]],"^4C",["^T",[null,null]]],"^4B",[["^4N","^4O"],["^4N","^4O","^4P"]],"^4D",null,"^4@",3,"^4C",["^T",[null,null]],"^8",1,"^4?",false,"^4E",[["^ ","^4@",2,"^4?",false,"^4F",["^F",[null,"^4H","^4G"]]],["^ ","^4@",3,"^4?",false,"^4F",["^F",[null,"^4H"]]]],"^7",105,"^9",105,"^4A",3,"^4I",true,"^49",["^T",[["^4N","^4O"],["^4N","^4O","^4P"]]],"^;","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",["^ ","^48",null,"^5",["^ ","^6","clojure/set.cljs","^7",61,"^8",7,"^9",61,"^:",13,"^49",["^T",["^4:",["^T",[["~$pred","~$xset"]]]]],"^;","Returns a set of the elements for which pred is true"],"^G","^2:","^6","clojure/set.cljs","^:",13,"^4B",["^T",[["^4R","^4S"]]],"^4D",null,"^4C",["^T",[null,null]],"^8",1,"^4?",false,"^7",61,"^4K",["^F",[null,"^4H"]],"^9",61,"^4A",2,"^4I",true,"^49",["^T",["^4:",["^T",[["^4R","^4S"]]]]],"^;","Returns a set of the elements for which pred is true"],"~$intersection",["^ ","^48",null,"^5",["^ ","^6","clojure/set.cljs","^7",31,"^8",7,"^9",31,"^:",19,"^49",["^T",["^4:",["^T",[["^4;"],["^4;","^4<"],["^4;","^4<","~$&","^4="]]]]],"^;","Return a set that is the intersection of the input sets","^4>",["^ ","^4?",true,"^4@",2,"^4A",2,"^4B",[["^4;"],["^4;","^4<"]],"^49",["^T",[["^4;"],["^4;","^4<"],["^4;","^4<","~$&","^4="]]],"^4C",["^T",[null,null,null]]]],"^G","^1=","^6","clojure/set.cljs","^:",19,"^4>",["^ ","^4?",true,"^4@",2,"^4A",2,"^4B",[["^4;"],["^4;","^4<"]],"^49",["^T",[["^4;"],["^4;","^4<"],["^4;","^4<","~$&","^4="]]],"^4C",["^T",[null,null,null]]],"^4B",[["^4;"],["^4;","^4<"]],"^4D",null,"^4@",2,"^4C",["^T",[null,null,null]],"^8",1,"^4?",true,"^4E",[["^ ","^4@",1,"^4?",false],["^ ","^4@",2,"^4?",false,"^4F",["^F",[null,"^4H"]]],["^ ","^4@",2,"^4?",true,"^4F",["^F",[null,"^4H"]]]],"^7",31,"^9",31,"^4A",2,"^4I",true,"^49",["^T",[["^4;"],["^4;","^4<"],["^4;","^4<","~$&","^4="]]],"^;","Return a set that is the intersection of the input sets"],"~$superset?",["^ ","^48",null,"^5",["^ ","^6","clojure/set.cljs","^7",141,"^8",7,"^9",141,"^:",16,"^49",["^T",["^4:",["^T",[["~$set1","~$set2"]]]]],"^;","Is set1 a superset of set2?"],"^G","^1S","^6","clojure/set.cljs","^:",16,"^4B",["^T",[["^4V","^4W"]]],"^4D",null,"^4C",["^T",[null,null]],"^8",1,"^4?",false,"^7",141,"^4K","~$boolean","^9",141,"^4A",2,"^4I",true,"^49",["^T",["^4:",["^T",[["^4V","^4W"]]]]],"^;","Is set1 a superset of set2?"],"~$index",["^ ","^48",null,"^5",["^ ","^6","clojure/set.cljs","^7",87,"^8",7,"^9",87,"^:",12,"^49",["^T",["^4:",["^T",[["^4N","~$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."],"^G","^1?","^6","clojure/set.cljs","^:",12,"^4B",["^T",[["^4N","^4Z"]]],"^4D",null,"^4C",["^T",[null,null]],"^8",1,"^4?",false,"^7",87,"^4K",["^F",[null,"^4H"]],"^9",87,"^4A",2,"^4I",true,"^49",["^T",["^4:",["^T",[["^4N","^4Z"]]]]],"^;","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",["^ ","^48",null,"^5",["^ ","^6","clojure/set.cljs","^7",13,"^8",8,"^9",13,"^:",22,"~:private",true,"^49",["^T",["^4:",["^T",[["~$k","~$coll"]]]]]],"^50",true,"^G","^1A","^6","clojure/set.cljs","^:",22,"^4B",["^T",[["~$k","^51"]]],"^4D",null,"^4C",["^T",[null,null]],"^8",1,"^4?",false,"^7",13,"^4K","^4L","^9",13,"^4A",2,"^4I",true,"^49",["^T",["^4:",["^T",[["~$k","^51"]]]]]],"~$subset?",["^ ","^48",null,"^5",["^ ","^6","clojure/set.cljs","^7",135,"^8",7,"^9",135,"^:",14,"^49",["^T",["^4:",["^T",[["^4V","^4W"]]]]],"^;","Is set1 a subset of set2?"],"^G","^1V","^6","clojure/set.cljs","^:",14,"^4B",["^T",[["^4V","^4W"]]],"^4D",null,"^4C",["^T",[null,null]],"^8",1,"^4?",false,"^7",135,"^4K","^4X","^9",135,"^4A",2,"^4I",true,"^49",["^T",["^4:",["^T",[["^4V","^4W"]]]]],"^;","Is set1 a subset of set2?"],"~$rename",["^ ","^48",null,"^5",["^ ","^6","clojure/set.cljs","^7",82,"^8",7,"^9",82,"^:",13,"^49",["^T",["^4:",["^T",[["^4N","~$kmap"]]]]],"^;","Returns a rel of the maps in xrel with the keys in kmap renamed to the vals in kmap"],"^G","^23","^6","clojure/set.cljs","^:",13,"^4B",["^T",[["^4N","^54"]]],"^4D",null,"^4C",["^T",[null,null]],"^8",1,"^4?",false,"^7",82,"^4K",["^F",["^4L","^4H","^4G","~$cljs.core/MetaFn","~$clj-nil"]],"^9",82,"^4A",2,"^4I",true,"^49",["^T",["^4:",["^T",[["^4N","^54"]]]]],"^;","Returns a rel of the maps in xrel with the keys in kmap renamed to the vals in kmap"],"~$rename-keys",["^ ","^48",null,"^5",["^ ","^6","clojure/set.cljs","^7",72,"^8",7,"^9",72,"^:",18,"^49",["^T",["^4:",["^T",[["~$map","^54"]]]]],"^;","Returns the map with the keys in kmap renamed to the vals in kmap"],"^G","^1N","^6","clojure/set.cljs","^:",18,"^4B",["^T",[["^58","^54"]]],"^4D",null,"^4C",["^T",[null,null]],"^8",1,"^4?",false,"^7",72,"^4K",["^F",[null,"^4H"]],"^9",72,"^4A",2,"^4I",true,"^49",["^T",["^4:",["^T",[["^58","^54"]]]]],"^;","Returns the map with the keys in kmap renamed to the vals in kmap"],"~$project",["^ ","^48",null,"^5",["^ ","^6","clojure/set.cljs","^7",67,"^8",7,"^9",67,"^:",14,"^49",["^T",["^4:",["^T",[["^4N","^4Z"]]]]],"^;","Returns a rel of the elements of xrel with only the keys in ks"],"^G","^1>","^6","clojure/set.cljs","^:",14,"^4B",["^T",[["^4N","^4Z"]]],"^4D",null,"^4C",["^T",[null,null]],"^8",1,"^4?",false,"^7",67,"^4K",["^F",["^4L","^4H","^4G","^55","^56"]],"^9",67,"^4A",2,"^4I",true,"^49",["^T",["^4:",["^T",[["^4N","^4Z"]]]]],"^;","Returns a rel of the elements of xrel with only the keys in ks"],"~$difference",["^ ","^48",null,"^5",["^ ","^6","clojure/set.cljs","^7",46,"^8",7,"^9",46,"^:",17,"^49",["^T",["^4:",["^T",[["^4;"],["^4;","^4<"],["^4;","^4<","~$&","^4="]]]]],"^;","Return a set that is the first set without elements of the remaining sets","^4>",["^ ","^4?",true,"^4@",2,"^4A",2,"^4B",[["^4;"],["^4;","^4<"]],"^49",["^T",[["^4;"],["^4;","^4<"],["^4;","^4<","~$&","^4="]]],"^4C",["^T",[null,null,null]]]],"^G","^1R","^6","clojure/set.cljs","^:",17,"^4>",["^ ","^4?",true,"^4@",2,"^4A",2,"^4B",[["^4;"],["^4;","^4<"]],"^49",["^T",[["^4;"],["^4;","^4<"],["^4;","^4<","~$&","^4="]]],"^4C",["^T",[null,null,null]]],"^4B",[["^4;"],["^4;","^4<"]],"^4D",null,"^4@",2,"^4C",["^T",[null,null,null]],"^8",1,"^4?",true,"^4E",[["^ ","^4@",1,"^4?",false],["^ ","^4@",2,"^4?",false,"^4F",["^F",[null,"^4H"]]],["^ ","^4@",2,"^4?",true,"^4F",["^F",[null,"^4H"]]]],"^7",46,"^9",46,"^4A",2,"^4I",true,"^49",["^T",[["^4;"],["^4;","^4<"],["^4;","^4<","~$&","^4="]]],"^;","Return a set that is the first set without elements of the remaining sets"]],"^R",["^ ","^N","^N"],"^V",["^ "],"^W",[],"^X",["^O","^N"]],"^K","^H","~:ns-specs",["^ "],"~:ns-spec-vars",["^F",[]],"~:compiler-options",["^2=",[["^5=","~:static-fns"],true,["~:js-options","~:use-babel"],null,["^5=","~:shadow-tweaks"],null,["^5=","~:source-map-inline"],null,["^5=","~:shadow-optimize-constants"],null,["^5=","~:elide-asserts"],false,["^5=","~:optimize-constants"],null,["^5=","^11"],null,["^5=","~:external-config"],null,["^5=","~:tooling-config"],null,["^5=","~:emit-constants"],null,["^5=","~:load-tests"],null,["^5=","~:form-size-threshold"],null,["^5=","~:global-goog-object&array"],null,["^5=","~:data-readers"],null,["^5=","~:infer-externs"],"~:auto",["^5=","^13"],null,["^5?","~:js-provider"],"~:shadow",["~:mode"],"~:dev",["^5=","~:fn-invoke-direct"],null,["^5=","~:source-map"],"/dev/null"]]] |