1{-# LANGUAGE CPP #-}
2
3-- | Strict @Map@. Import as:
4--
5-- > import qualified RIO.Map as Map
6--
7-- This module does not export any partial or unchecked functions.  For those,
8-- see "RIO.Map.Partial" and "RIO.Map.Unchecked"
9module RIO.Map
10  (
11  -- * Map type
12    Data.Map.Strict.Map
13
14  -- * Operators
15#if MIN_VERSION_containers(0,5,9)
16  , (Data.Map.Strict.!?)
17#endif
18  , (Data.Map.Strict.\\)
19
20  -- * Query
21  , Data.Map.Strict.null
22  , Data.Map.Strict.size
23  , Data.Map.Strict.member
24  , Data.Map.Strict.notMember
25  , Data.Map.Strict.lookup
26  , Data.Map.Strict.findWithDefault
27  , Data.Map.Strict.lookupLT
28  , Data.Map.Strict.lookupGT
29  , Data.Map.Strict.lookupLE
30  , Data.Map.Strict.lookupGE
31
32  -- * Construction
33  , Data.Map.Strict.empty
34  , Data.Map.Strict.singleton
35
36  -- ** Insertion
37  , Data.Map.Strict.insert
38  , Data.Map.Strict.insertWith
39  , Data.Map.Strict.insertWithKey
40  , Data.Map.Strict.insertLookupWithKey
41
42  -- ** Delete\/Update
43  , Data.Map.Strict.delete
44  , Data.Map.Strict.adjust
45  , Data.Map.Strict.adjustWithKey
46  , Data.Map.Strict.update
47  , Data.Map.Strict.updateWithKey
48  , Data.Map.Strict.updateLookupWithKey
49  , Data.Map.Strict.alter
50#if MIN_VERSION_containers(0,5,8)
51  , Data.Map.Strict.alterF
52#endif
53
54  -- * Combine
55
56  -- ** Union
57  , Data.Map.Strict.union
58  , Data.Map.Strict.unionWith
59  , Data.Map.Strict.unionWithKey
60  , Data.Map.Strict.unions
61  , Data.Map.Strict.unionsWith
62
63  -- ** Difference
64  , Data.Map.Strict.difference
65  , Data.Map.Strict.differenceWith
66  , Data.Map.Strict.differenceWithKey
67
68  -- ** Intersection
69  , Data.Map.Strict.intersection
70  , Data.Map.Strict.intersectionWith
71  , Data.Map.Strict.intersectionWithKey
72
73  -- ** General combining functions
74  -- | See "Data.Map.Merge.Strict"
75
76  -- ** Deprecated general combining function
77
78  , Data.Map.Strict.mergeWithKey
79
80  -- * Traversal
81  -- ** Map
82  , Data.Map.Strict.map
83  , Data.Map.Strict.mapWithKey
84  , Data.Map.Strict.traverseWithKey
85#if MIN_VERSION_containers(0,5,8)
86  , Data.Map.Strict.traverseMaybeWithKey
87#endif
88  , Data.Map.Strict.mapAccum
89  , Data.Map.Strict.mapAccumWithKey
90  , Data.Map.Strict.mapAccumRWithKey
91  , Data.Map.Strict.mapKeys
92  , Data.Map.Strict.mapKeysWith
93
94  -- * Folds
95  , Data.Map.Strict.foldr
96  , Data.Map.Strict.foldl
97  , Data.Map.Strict.foldrWithKey
98  , Data.Map.Strict.foldlWithKey
99  , Data.Map.Strict.foldMapWithKey
100
101  -- ** Strict folds
102  , Data.Map.Strict.foldr'
103  , Data.Map.Strict.foldl'
104  , Data.Map.Strict.foldrWithKey'
105  , Data.Map.Strict.foldlWithKey'
106
107  -- * Conversion
108  , Data.Map.Strict.elems
109  , Data.Map.Strict.keys
110  , Data.Map.Strict.assocs
111  , Data.Map.Strict.keysSet
112  , Data.Map.Strict.fromSet
113
114  -- ** Lists
115  , Data.Map.Strict.toList
116  , Data.Map.Strict.fromList
117  , Data.Map.Strict.fromListWith
118  , Data.Map.Strict.fromListWithKey
119
120  -- ** Ordered lists
121  , Data.Map.Strict.toAscList
122#if MIN_VERSION_containers(0,5,8)
123  , Data.Map.Strict.toDescList
124#endif
125
126  -- * Filter
127  , Data.Map.Strict.filter
128  , Data.Map.Strict.filterWithKey
129#if MIN_VERSION_containers(0,5,8)
130  , Data.Map.Strict.restrictKeys
131  , Data.Map.Strict.withoutKeys
132#endif
133  , Data.Map.Strict.partition
134  , Data.Map.Strict.partitionWithKey
135
136#if MIN_VERSION_containers(0,5,8)
137  , Data.Map.Strict.takeWhileAntitone
138  , Data.Map.Strict.dropWhileAntitone
139  , Data.Map.Strict.spanAntitone
140#endif
141
142  , Data.Map.Strict.mapMaybe
143  , Data.Map.Strict.mapMaybeWithKey
144  , Data.Map.Strict.mapEither
145  , Data.Map.Strict.mapEitherWithKey
146
147  , Data.Map.Strict.split
148  , Data.Map.Strict.splitLookup
149  , Data.Map.Strict.splitRoot
150
151  -- * Submap
152  , Data.Map.Strict.isSubmapOf
153  , Data.Map.Strict.isSubmapOfBy
154  , Data.Map.Strict.isProperSubmapOf
155  , Data.Map.Strict.isProperSubmapOfBy
156
157  -- * Indexed
158  , Data.Map.Strict.lookupIndex
159  , Data.Map.Strict.elemAt
160  , Data.Map.Strict.deleteAt
161#if MIN_VERSION_containers(0,5,8)
162  , Data.Map.Strict.take
163  , Data.Map.Strict.drop
164  , Data.Map.Strict.splitAt
165#endif
166
167  -- * Min\/Max
168#if MIN_VERSION_containers(0,5,9)
169  , Data.Map.Strict.lookupMin
170  , Data.Map.Strict.lookupMax
171#endif
172  , Data.Map.Strict.deleteMin
173  , Data.Map.Strict.deleteMax
174  , Data.Map.Strict.updateMin
175  , Data.Map.Strict.updateMax
176  , Data.Map.Strict.updateMinWithKey
177  , Data.Map.Strict.updateMaxWithKey
178  , Data.Map.Strict.minView
179  , Data.Map.Strict.maxView
180  , Data.Map.Strict.minViewWithKey
181  , Data.Map.Strict.maxViewWithKey
182
183  -- * Debugging
184  , Data.Map.Strict.showTree
185  , Data.Map.Strict.showTreeWith
186  , Data.Map.Strict.valid
187  ) where
188
189import qualified Data.Map.Strict
190