@@ -112,7 +112,20 @@ module Data.Array
112
112
113
113
, unsafeIndex
114
114
115
- , module Exports
115
+ -- Specialized Re-exports
116
+ , foldl
117
+ , foldr
118
+ , foldMap
119
+ , fold
120
+ , intercalate
121
+ , elem
122
+ , notElem
123
+ , find
124
+ , findMap
125
+ , any
126
+ , all
127
+ , scanl
128
+ , scanr
116
129
) where
117
130
118
131
import Prelude
@@ -125,10 +138,10 @@ import Control.Monad.ST as ST
125
138
import Data.Array.ST as STA
126
139
import Data.Array.ST.Iterator as STAI
127
140
import Data.Array.NonEmpty.Internal (NonEmptyArray )
128
- import Data.Foldable (class Foldable , foldl , foldr , traverse_ )
129
- import Data.Foldable (foldl , foldr , foldMap , fold , intercalate , elem , notElem , find , findMap , any , all ) as Exports
141
+ import Data.Foldable (class Foldable , traverse_ )
142
+ import Data.Foldable (foldl , foldr , foldMap , fold , intercalate , elem , notElem , find , findMap , any , all ) as E
130
143
import Data.Maybe (Maybe (..), maybe , isJust , fromJust )
131
- import Data.Traversable (scanl , scanr ) as Exports
144
+ import Data.Traversable (scanl , scanr ) as E
132
145
import Data.Traversable (sequence , traverse )
133
146
import Data.Tuple (Tuple (..), fst , snd )
134
147
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
@@ -929,7 +942,7 @@ nubByEq :: forall a. (a -> a -> Boolean) -> Array a -> Array a
929
942
nubByEq eq xs = ST .run do
930
943
arr <- STA .empty
931
944
ST .foreach xs \x -> do
932
- e <- not <<< Exports . any (_ `eq` x) <$> (STA .unsafeFreeze arr)
945
+ e <- not <<< any (_ `eq` x) <$> (STA .unsafeFreeze arr)
933
946
when e $ void $ STA .push x arr
934
947
STA .unsafeFreeze arr
935
948
@@ -1121,3 +1134,43 @@ unsafeIndex :: forall a. Partial => Array a -> Int -> a
1121
1134
unsafeIndex = unsafeIndexImpl
1122
1135
1123
1136
foreign import unsafeIndexImpl :: forall a . Array a -> Int -> a
1137
+
1138
+ -- Specialized Re-exports
1139
+ foldl :: forall a b . (b -> a -> b ) -> b -> Array a -> b
1140
+ foldl = E .foldl
1141
+
1142
+ foldr :: forall a b . (a -> b -> b ) -> b -> Array a -> b
1143
+ foldr = E .foldr
1144
+
1145
+ foldMap :: forall a m . Monoid m => (a -> m ) -> Array a -> m
1146
+ foldMap = E .foldMap
1147
+
1148
+ fold :: forall m . Monoid m => Array m -> m
1149
+ fold = E .fold
1150
+
1151
+ intercalate :: forall m . Monoid m => m -> Array m -> m
1152
+ intercalate = E .intercalate
1153
+
1154
+ elem :: forall a . Eq a => a -> Array a -> Boolean
1155
+ elem = E .elem
1156
+
1157
+ notElem :: forall a . Eq a => a -> Array a -> Boolean
1158
+ notElem = E .notElem
1159
+
1160
+ find :: forall a . (a -> Boolean ) -> Array a -> Maybe a
1161
+ find = E .find
1162
+
1163
+ findMap :: forall a b . (a -> Maybe b ) -> Array a -> Maybe b
1164
+ findMap = E .findMap
1165
+
1166
+ any :: forall a b . HeytingAlgebra b => (a -> b ) -> Array a -> b
1167
+ any = E .any
1168
+
1169
+ all :: forall a b . HeytingAlgebra b => (a -> b ) -> Array a -> b
1170
+ all = E .all
1171
+
1172
+ scanl :: forall a b . (b -> a -> b ) -> b -> Array a -> Array b
1173
+ scanl = E .scanl
1174
+
1175
+ scanr :: forall a b . (a -> b -> b ) -> b -> Array a -> Array b
1176
+ scanr = E .scanr
0 commit comments