1{-# LANGUAGE CPP #-}
2
3-- | Boxed @Vector@. Import as:
4--
5-- > import qualified RIO.Vector.Boxed as VB
6--
7-- This module does not export any partial or unsafe functions.  For those, see
8-- "RIO.Vector.Boxed.Partial" and "RIO.Vector.Boxed.Unsafe"
9module RIO.Vector.Boxed
10  (
11  -- * Boxed vectors
12    Data.Vector.Vector
13  , Data.Vector.MVector
14
15  -- * Accessors
16  -- ** Length information
17  , Data.Vector.length
18  , Data.Vector.null
19
20  -- ** Indexing
21  , (Data.Vector.!?)
22
23  -- ** Extracting subvectors
24  , Data.Vector.slice
25  , Data.Vector.take
26  , Data.Vector.drop
27  , Data.Vector.splitAt
28
29  -- * Construction
30  -- ** Initialisation
31  , Data.Vector.empty
32  , Data.Vector.singleton
33  , Data.Vector.replicate
34  , Data.Vector.generate
35  , Data.Vector.iterateN
36
37  -- ** Monadic initialisation
38  , Data.Vector.replicateM
39  , Data.Vector.generateM
40#if MIN_VERSION_vector(0,12,0)
41  , Data.Vector.iterateNM
42#endif
43  , Data.Vector.create
44#if MIN_VERSION_vector(0,12,0)
45  , Data.Vector.createT
46#endif
47
48  -- ** Unfolding
49  , Data.Vector.unfoldr
50  , Data.Vector.unfoldrN
51#if MIN_VERSION_vector(0,12,0)
52  , Data.Vector.unfoldrM
53  , Data.Vector.unfoldrNM
54#endif
55  , Data.Vector.constructN
56  , Data.Vector.constructrN
57
58  -- ** Enumeration
59  , Data.Vector.enumFromN
60  , Data.Vector.enumFromStepN
61  , Data.Vector.enumFromTo
62  , Data.Vector.enumFromThenTo
63
64  -- ** Concatenation
65  , Data.Vector.cons
66  , Data.Vector.snoc
67  , (Data.Vector.++)
68  , Data.Vector.concat
69
70  -- ** Restricting memory usage
71  , Data.Vector.force
72
73  -- * Modifying vectors
74  -- ** Permutations
75  , Data.Vector.reverse
76
77  -- ** Safe destructive update
78  , Data.Vector.modify
79
80  -- * Elementwise operations
81  -- ** Indexing
82  , Data.Vector.indexed
83
84  -- ** Mapping
85  , Data.Vector.map
86  , Data.Vector.imap
87  , Data.Vector.concatMap
88
89  -- ** Monadic mapping
90  , Data.Vector.mapM
91  , Data.Vector.imapM
92  , Data.Vector.mapM_
93  , Data.Vector.imapM_
94  , Data.Vector.forM
95  , Data.Vector.forM_
96
97  -- ** Zipping
98  , Data.Vector.zipWith
99  , Data.Vector.zipWith3
100  , Data.Vector.zipWith4
101  , Data.Vector.zipWith5
102  , Data.Vector.zipWith6
103  , Data.Vector.izipWith
104  , Data.Vector.izipWith3
105  , Data.Vector.izipWith4
106  , Data.Vector.izipWith5
107  , Data.Vector.izipWith6
108  , Data.Vector.zip
109  , Data.Vector.zip3
110  , Data.Vector.zip4
111  , Data.Vector.zip5
112  , Data.Vector.zip6
113
114  -- ** Monadic zipping
115  , Data.Vector.zipWithM
116  , Data.Vector.izipWithM
117  , Data.Vector.zipWithM_
118  , Data.Vector.izipWithM_
119
120  -- ** Unzipping
121  , Data.Vector.unzip
122  , Data.Vector.unzip3
123  , Data.Vector.unzip4
124  , Data.Vector.unzip5
125  , Data.Vector.unzip6
126
127  -- * Working with predicates
128  -- ** Filtering
129  , Data.Vector.filter
130  , Data.Vector.ifilter
131#if MIN_VERSION_vector(0,12,0)
132  , Data.Vector.uniq
133  , Data.Vector.mapMaybe
134  , Data.Vector.imapMaybe
135#endif
136  , Data.Vector.filterM
137  , Data.Vector.takeWhile
138  , Data.Vector.dropWhile
139
140  -- ** Partitioning
141  , Data.Vector.partition
142  , Data.Vector.unstablePartition
143  , Data.Vector.span
144  , Data.Vector.break
145
146  -- ** Searching
147  , Data.Vector.elem
148  , Data.Vector.notElem
149  , Data.Vector.find
150  , Data.Vector.findIndex
151  , Data.Vector.findIndices
152  , Data.Vector.elemIndex
153  , Data.Vector.elemIndices
154
155  -- * Folding
156  , Data.Vector.foldl
157  , Data.Vector.foldl'
158  , Data.Vector.foldr
159  , Data.Vector.foldr'
160  , Data.Vector.ifoldl
161  , Data.Vector.ifoldl'
162  , Data.Vector.ifoldr
163  , Data.Vector.ifoldr'
164
165  -- ** Specialised folds
166  , Data.Vector.all
167  , Data.Vector.any
168  , Data.Vector.and
169  , Data.Vector.or
170  , Data.Vector.sum
171  , Data.Vector.product
172
173  -- ** Monadic folds
174  , Data.Vector.foldM
175  , Data.Vector.ifoldM
176  , Data.Vector.foldM'
177  , Data.Vector.ifoldM'
178  , Data.Vector.foldM_
179  , Data.Vector.ifoldM_
180  , Data.Vector.foldM'_
181  , Data.Vector.ifoldM'_
182
183  -- ** Monadic sequencing
184  , Data.Vector.sequence
185  , Data.Vector.sequence_
186
187  -- * Prefix sums (scans)
188  , Data.Vector.prescanl
189  , Data.Vector.prescanl'
190  , Data.Vector.postscanl
191  , Data.Vector.postscanl'
192  , Data.Vector.scanl
193  , Data.Vector.scanl'
194#if MIN_VERSION_vector(0,12,0)
195  , Data.Vector.iscanl
196  , Data.Vector.iscanl'
197#endif
198  , Data.Vector.prescanr
199  , Data.Vector.prescanr'
200  , Data.Vector.postscanr
201  , Data.Vector.postscanr'
202  , Data.Vector.scanr
203  , Data.Vector.scanr'
204#if MIN_VERSION_vector(0,12,0)
205  , Data.Vector.iscanr
206  , Data.Vector.iscanr'
207#endif
208
209  -- * Conversions
210  -- ** Lists
211  , Data.Vector.toList
212  , Data.Vector.fromList
213  , Data.Vector.fromListN
214
215  -- ** Different vector types
216  , Data.Vector.convert
217
218  -- ** Mutable vectors
219  , Data.Vector.freeze
220  , Data.Vector.thaw
221  , Data.Vector.copy
222  ) where
223
224import qualified Data.Vector
225