ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAGAHAI
1
namet. paramshas funcinsertupdateremoveisEmptymembergetsizeminmaxeqkeyssorted?valuessorted?toListsorted?fromListmapfoldlfoldrfilterpartitionunionintersectdiffmergeImplementationkeyneeds comparator?Notes
2
elm/core2nolog nlog nlog nconstlog nlog nnN/AN/Amax(f,s)==nyesnyesnyesn log nnnnn log nn log nf log (f + s)f log (f * s)f log (f * s)f + sRBtreecomparablenoN/A
3
edkelly303/elm-any-type-collections3nolog nlog nlog nconstlog nlog nnN/AN/Amax(f,s)==ncompncompncompn log nnnnn log nn log nf log (f + s)f log (f * s)f log (f * s)f + sStatically wrap elm/core with to/fromComparableto/fromComparablestaticallyyesno DCE
4
edkv/elm-generic-dict2nolog nlog nlog nconstlog nlog nnN/AN/Amax(f,s)==ncompncompncompn log nnnnn log nn log nf log (f + s)f log (f * s)f log (f * s)f + sOpaque (Dict String (k,v))toStringBuild/Query/fromListno
5
escherlies/elm-ix-dict2yeslog nN/Alog nconstlog nlog nnN/AN/AN/AN/Anyesnyesnyesn log nnnnn log nn log nf log (f + s)f log (f * s)f log (f * s)N/AOpaque (Dict k v, fromValue)comparable, fromValueempty/fromListyesself-keyed
6
jjant/elm-dict2yesconstN/AconstN/AN/AopN/AN/AN/AN/AN/AN/AN/AN/AN/AN/AN/AnconstN/AN/AN/AN/AN/AN/AN/AN/Ak -> Maybe v==noN/Aremoving items does not free memory!
7
matzko/elm-opaque-dict2yeslog nlog nlog nconstlog nlog nnN/AN/AN/AN/An log nyesncompncompn log nnnnn log nn log nf log (f + s)f log (f * s)f log (f * s)f + sDict String (k,v) + toStringtoStringempty/fromListyes
8
miniBill/elm-fast-dict2nolog nlog nlog nconstlog nlog nconstlog nlog nmin(f,s)eqncompncompncompn log nnnnn log nn log nf log (f + s)f + s + r log rs log ff + sRBTreecomparableno?
9
miniBill/elm-generic-dict1nolog nlog nlog nconstlog nlog nnN/AN/An==ncompncompncompn log nnnnn log nn log nf log (f + s)f + s + r log rs log ff + sStatically wrap elm/core with toComparabletoComparablestaticallyyesgenerates on module per key type
10
owanturist/elm-avl-dict2yeslog nlog nlog nconstlog nlog nconstlog nlog nN/AN/Anyesnyesnyesn log nnnnn log nn log nf log (f + s)f log (f * s)f log (f * s)f + sRBTree + comparatorcomparatorempty/fromListyes
11
pzp1997/assoc-list2nonnnconstnnnN/AN/Af * seqninsertninsertconstinsertnnnnnf (f + s)f * sf * sf * sOpaque (List (k, v))==noN/A
12
Timo-Weike/generic-collections [Auto]3yeslog nlog nlog nconstlog nlog nnN/AN/As log f + f log seqncompncompncompn log nnnnn log nn log nf log (f + s) + s log sf log (f * s)s log ff + sOpaque (Dict comparable (k, v) + toComparable)toComparableempty/fromListyeseq only checks keys
13
Timo-Weike/generic-collections [Manual]3nolog nlog nlog nconstlog nlog nnN/AN/Amax(f,s)==ncompncompncompn log nnnnn log nn log nf log (f + s) + s log sf log (f * s)s log ff + sOpaque (Dict comparable (k, v))toComparableBuild/Query/fromList/Combinenoeq only checks keys
14
truqu/elm-dictset2yeslog nlog nlog nconstlog nN/AnN/AN/AN/AN/Anyesnyesnyesn log nnnnn log nn log nf log (f + s)f log (f * s)f log (f * s)N/AOpaque (Dict k v, fromValue)comparable, fromValueempty/fromListyesself-keyed
15
turboMaCk/any-dict3yeslog nlog nlog nconstlog nlog nnN/AN/AN/AN/Ancompncompncompn log nnnnn log nn log nf log (f + s)f log (f * s)f log (f * s)f + sOpaque (Dict comparable (k, v) + toComparable)toComparableempty/fromListyes
16
lamdera/containers2nolog nlog nlog nconstlog nlog nconstN/AN/As log feqninsertninsertninsertn log n2 nnnn log nn log nf log (f + s)f log (r + s)Hashtable==no
17
hedgehogface/dict-any-set-any
18
19
Legend
20
Better than most
21
Tradeoff
22
Watch out
23
I'm not sure
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100