Skip to content

Commit 3e2ddd2

Browse files
committed
Change reexports to specialize to type Array
1 parent 08dbdfe commit 3e2ddd2

File tree

1 file changed

+59
-6
lines changed

1 file changed

+59
-6
lines changed

src/Data/Array.purs

Lines changed: 59 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,20 @@ module Data.Array
113113

114114
, unsafeIndex
115115

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
117130
) where
118131

119132
import Prelude
@@ -126,10 +139,10 @@ import Control.Monad.ST as ST
126139
import Data.Array.NonEmpty.Internal (NonEmptyArray(..))
127140
import Data.Array.ST as STA
128141
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
131144
import Data.Maybe (Maybe(..), maybe, isJust, fromJust)
132-
import Data.Traversable (scanl, scanr) as Exports
145+
import Data.Traversable (scanl, scanr) as E
133146
import Data.Traversable (sequence, traverse)
134147
import Data.Tuple (Tuple(..), fst, snd)
135148
import Data.Unfoldable (class Unfoldable, unfoldr)
@@ -152,7 +165,7 @@ toUnfoldable xs = unfoldr f 0
152165
-- | ```
153166
-- |
154167
fromFoldable :: forall f. Foldable f => f ~> Array
155-
fromFoldable = fromFoldableImpl foldr
168+
fromFoldable = fromFoldableImpl E.foldr
156169

157170
foreign import fromFoldableImpl
158171
:: forall f a
@@ -954,7 +967,7 @@ nubByEq :: forall a. (a -> a -> Boolean) -> Array a -> Array a
954967
nubByEq eq xs = ST.run do
955968
arr <- STA.empty
956969
ST.foreach xs \x -> do
957-
e <- not <<< Exports.any (_ `eq` x) <$> (STA.unsafeFreeze arr)
970+
e <- not <<< any (_ `eq` x) <$> (STA.unsafeFreeze arr)
958971
when e $ void $ STA.push x arr
959972
STA.unsafeFreeze arr
960973

@@ -1145,3 +1158,43 @@ unsafeIndex :: forall a. Partial => Array a -> Int -> a
11451158
unsafeIndex = unsafeIndexImpl
11461159

11471160
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

Comments
 (0)