@@ -113,7 +113,20 @@ module Data.Array
113
113
114
114
, unsafeIndex
115
115
116
- , module Exports
116
+ -- Specialized Re-exports
117
+ , foldl
118
+ , foldr
119
+ , foldMap
120
+ , fold
121
+ , intercalate
122
+ , elem
123
+ , notElem
124
+ , find
125
+ , findMap
126
+ , any
127
+ , all
128
+ , scanl
129
+ , scanr
117
130
) where
118
131
119
132
import Prelude
@@ -126,10 +139,10 @@ import Control.Monad.ST as ST
126
139
import Data.Array.NonEmpty.Internal (NonEmptyArray (..))
127
140
import Data.Array.ST as STA
128
141
import Data.Array.ST.Iterator as STAI
129
- import Data.Foldable (class Foldable , foldl , foldr , traverse_ )
130
- import Data.Foldable (foldl , foldr , foldMap , fold , intercalate , elem , notElem , find , findMap , any , all ) as Exports
142
+ import Data.Foldable (class Foldable , traverse_ )
143
+ import Data.Foldable (foldl , foldr , foldMap , fold , intercalate , elem , notElem , find , findMap , any , all ) as E
131
144
import Data.Maybe (Maybe (..), maybe , isJust , fromJust )
132
- import Data.Traversable (scanl , scanr ) as Exports
145
+ import Data.Traversable (scanl , scanr ) as E
133
146
import Data.Traversable (sequence , traverse )
134
147
import Data.Tuple (Tuple (..), fst , snd )
135
148
import Data.Unfoldable (class Unfoldable , unfoldr )
@@ -152,7 +165,7 @@ toUnfoldable xs = unfoldr f 0
152
165
-- | ```
153
166
-- |
154
167
fromFoldable :: forall f . Foldable f => f ~> Array
155
- fromFoldable = fromFoldableImpl foldr
168
+ fromFoldable = fromFoldableImpl E . foldr
156
169
157
170
foreign import fromFoldableImpl
158
171
:: forall f a
@@ -954,7 +967,7 @@ nubByEq :: forall a. (a -> a -> Boolean) -> Array a -> Array a
954
967
nubByEq eq xs = ST .run do
955
968
arr <- STA .empty
956
969
ST .foreach xs \x -> do
957
- e <- not <<< Exports . any (_ `eq` x) <$> (STA .unsafeFreeze arr)
970
+ e <- not <<< any (_ `eq` x) <$> (STA .unsafeFreeze arr)
958
971
when e $ void $ STA .push x arr
959
972
STA .unsafeFreeze arr
960
973
@@ -1145,3 +1158,43 @@ unsafeIndex :: forall a. Partial => Array a -> Int -> a
1145
1158
unsafeIndex = unsafeIndexImpl
1146
1159
1147
1160
foreign import unsafeIndexImpl :: forall a . Array a -> Int -> a
1161
+
1162
+ -- Specialized Re-exports
1163
+ foldl :: forall a b . (b -> a -> b ) -> b -> Array a -> b
1164
+ foldl = E .foldl
1165
+
1166
+ foldr :: forall a b . (a -> b -> b ) -> b -> Array a -> b
1167
+ foldr = E .foldr
1168
+
1169
+ foldMap :: forall a m . Monoid m => (a -> m ) -> Array a -> m
1170
+ foldMap = E .foldMap
1171
+
1172
+ fold :: forall m . Monoid m => Array m -> m
1173
+ fold = E .fold
1174
+
1175
+ intercalate :: forall m . Monoid m => m -> Array m -> m
1176
+ intercalate = E .intercalate
1177
+
1178
+ elem :: forall a . Eq a => a -> Array a -> Boolean
1179
+ elem = E .elem
1180
+
1181
+ notElem :: forall a . Eq a => a -> Array a -> Boolean
1182
+ notElem = E .notElem
1183
+
1184
+ find :: forall a . (a -> Boolean ) -> Array a -> Maybe a
1185
+ find = E .find
1186
+
1187
+ findMap :: forall a b . (a -> Maybe b ) -> Array a -> Maybe b
1188
+ findMap = E .findMap
1189
+
1190
+ any :: forall a b . HeytingAlgebra b => (a -> b ) -> Array a -> b
1191
+ any = E .any
1192
+
1193
+ all :: forall a b . HeytingAlgebra b => (a -> b ) -> Array a -> b
1194
+ all = E .all
1195
+
1196
+ scanl :: forall a b . (b -> a -> b ) -> b -> Array a -> Array b
1197
+ scanl = E .scanl
1198
+
1199
+ scanr :: forall a b . (a -> b -> b ) -> b -> Array a -> Array b
1200
+ scanr = E .scanr
0 commit comments