gitextract_zg1q5mjk/ ├── .github/ │ ├── FUNDING.yml │ └── workflows/ │ └── test.yml ├── .gitignore ├── .mise.toml ├── CHANGELOG.md ├── LICENSE ├── README.md ├── build.clj ├── codegen/ │ └── gen_prim_invoke.clj ├── deps.edn ├── dev/ │ ├── resources/ │ │ └── logback.xml │ └── src/ │ ├── ham_fisted/ │ │ ├── analysis.clj │ │ ├── benchmark.clj │ │ └── protocol_perf.clj │ └── perftest.clj ├── docs/ │ ├── Reductions.html │ ├── css/ │ │ └── default.css │ ├── ham-fisted.api.html │ ├── ham-fisted.bloom-filter.html │ ├── ham-fisted.defprotocol.html │ ├── ham-fisted.fjp.html │ ├── ham-fisted.function.html │ ├── ham-fisted.hlet.html │ ├── ham-fisted.iterator.html │ ├── ham-fisted.lazy-noncaching.html │ ├── ham-fisted.mut-map.html │ ├── ham-fisted.primitive-invoke.html │ ├── ham-fisted.process.html │ ├── ham-fisted.profile.html │ ├── ham-fisted.protocols.html │ ├── ham-fisted.reduce.html │ ├── ham-fisted.set.html │ ├── ham-fisted.spliterator.html │ ├── highlight/ │ │ └── solarized-light.css │ ├── index.html │ └── js/ │ └── page_effects.js ├── java/ │ └── ham_fisted/ │ ├── ArrayHelpers.java │ ├── ArrayImmutList.java │ ├── ArrayLists.java │ ├── ArraySection.java │ ├── BatchReducer.java │ ├── BatchedList.java │ ├── BiFunctions.java │ ├── BlockSplitBloomFilter.java │ ├── Casts.java │ ├── ChunkedList.java │ ├── CljHash.java │ ├── ConstList.java │ ├── ConsumerAccumulators.java │ ├── Consumers.java │ ├── CtxIter.java │ ├── DoubleMutList.java │ ├── FJTask.java │ ├── FMapEntry.java │ ├── ForkJoinPatterns.java │ ├── HashBase.java │ ├── HashMap.java │ ├── HashNode.java │ ├── HashProvider.java │ ├── HashProviders.java │ ├── HashSet.java │ ├── IAMapEntry.java │ ├── IAPersistentMap.java │ ├── IAPersistentSet.java │ ├── IATransientMap.java │ ├── IATransientSet.java │ ├── ICollectionDef.java │ ├── IFnDef.java │ ├── IMap.java │ ├── IMutList.java │ ├── ISeqDef.java │ ├── ISet.java │ ├── ITypedReduce.java │ ├── ImmutList.java │ ├── ImmutSort.java │ ├── IndexedConsumer.java │ ├── IndexedDoubleConsumer.java │ ├── IndexedLongConsumer.java │ ├── IntegerOps.java │ ├── Iter.java │ ├── LazyChunkedSeq.java │ ├── LinkedHashMap.java │ ├── LinkedHashNode.java │ ├── LongAccum.java │ ├── LongHashBase.java │ ├── LongHashMap.java │ ├── LongHashNode.java │ ├── LongMutList.java │ ├── MapFn.java │ ├── MapForward.java │ ├── MapSetOps.java │ ├── MergeIterator.java │ ├── MethodImplCache.java │ ├── MutList.java │ ├── MutTreeList.java │ ├── MutableMap.java │ ├── ObjArray.java │ ├── ParallelOptions.java │ ├── PartitionByInner.java │ ├── PersistentHashMap.java │ ├── PersistentHashSet.java │ ├── PersistentLongHashMap.java │ ├── PersistentVector.java │ ├── ROHashMap.java │ ├── ROHashSet.java │ ├── ROLongHashMap.java │ ├── RandomAccessSpliterator.java │ ├── RangeList.java │ ├── Ranges.java │ ├── Reducible.java │ ├── Reductions.java │ ├── ReindexList.java │ ├── ReverseList.java │ ├── SetOps.java │ ├── StringCollection.java │ ├── Sum.java │ ├── Transformables.java │ ├── TransientHashMap.java │ ├── TransientHashSet.java │ ├── TransientList.java │ ├── TransientLongHashMap.java │ ├── TreeList.java │ ├── TreeListBase.java │ ├── TypedList.java │ ├── TypedNth.java │ ├── UnsharedHashMap.java │ ├── UnsharedHashSet.java │ ├── UnsharedLongHashMap.java │ └── UpdateValues.java ├── resources/ │ └── clj-kondo.exports/ │ └── cnuernber/ │ └── ham-fisted/ │ ├── config.edn │ └── hooks/ │ └── ham_fisted.clj_kondo ├── results/ │ ├── .keepme │ ├── concatv.edn │ ├── d00905c-chrisn-lt3-jdk-1.8.0_312.edn │ ├── d00905c-chrisn-lt3-jdk-17.0.1.edn │ ├── general-hashmap.edn │ ├── persistent-vector.edn │ ├── random-update.edn │ ├── sort-by.edn │ ├── typed-parallel-reductions.edn │ ├── typed-reductions-intel.edn │ ├── typed-reductions.edn │ ├── union-disj.edn │ ├── union-overlapping.edn │ ├── union-reduce-transient.edn │ ├── union-reduce.edn │ ├── update-values.edn │ └── vec-equals.edn ├── scripts/ │ ├── benchmark │ ├── compile │ ├── deploy │ ├── enable-jdk17 │ ├── install │ ├── koacha-test │ ├── lint │ ├── reformat │ └── run-tests ├── src/ │ └── ham_fisted/ │ ├── alists.clj │ ├── api.clj │ ├── bloom_filter.clj │ ├── caffeine.clj │ ├── datatypes.clj │ ├── defprotocol.clj │ ├── fjp.clj │ ├── function.clj │ ├── hlet.clj │ ├── impl.clj │ ├── iterator.clj │ ├── language.clj │ ├── lazy_caching.clj │ ├── lazy_noncaching.clj │ ├── mut_map.clj │ ├── primitive_invoke.clj │ ├── print.clj │ ├── process.clj │ ├── profile.clj │ ├── protocols.clj │ ├── reduce.clj │ ├── set.clj │ ├── spliterator.clj │ └── thread_local.clj ├── test/ │ └── ham_fisted/ │ ├── api_test.clj │ ├── bloom_filter_test.clj │ ├── cast_test.clj │ ├── defprotocol_test/ │ │ ├── examples.clj │ │ ├── hash_collisions_test.clj │ │ ├── more_examples.clj │ │ └── other_test.clj │ ├── defprotocol_test.clj │ ├── fjp_test.clj │ ├── hash_map_test.clj │ ├── hlet_test.clj │ ├── parallel_test.clj │ ├── persistent_vector_test.clj │ ├── test_setup.clj │ └── vec_like_test.clj ├── tests.edn └── topics/ └── Reductions.md