Skip to content

Commit a9d4e97

Browse files
committed
Change reexports to specialize to type Array
1 parent 55cb9e6 commit a9d4e97

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
@@ -112,7 +112,20 @@ module Data.Array
112112

113113
, unsafeIndex
114114

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

118131
import Prelude
@@ -125,10 +138,10 @@ import Control.Monad.ST as ST
125138
import Data.Array.ST as STA
126139
import Data.Array.ST.Iterator as STAI
127140
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
130143
import Data.Maybe (Maybe(..), maybe, isJust, fromJust)
131-
import Data.Traversable (scanl, scanr) as Exports
144+
import Data.Traversable (scanl, scanr) as E
132145
import Data.Traversable (sequence, traverse)
133146
import Data.Tuple (Tuple(..), fst, snd)
134147
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
@@ -929,7 +942,7 @@ nubByEq :: forall a. (a -> a -> Boolean) -> Array a -> Array a
929942
nubByEq eq xs = ST.run do
930943
arr <- STA.empty
931944
ST.foreach xs \x -> do
932-
e <- not <<< Exports.any (_ `eq` x) <$> (STA.unsafeFreeze arr)
945+
e <- not <<< any (_ `eq` x) <$> (STA.unsafeFreeze arr)
933946
when e $ void $ STA.push x arr
934947
STA.unsafeFreeze arr
935948

@@ -1121,3 +1134,43 @@ unsafeIndex :: forall a. Partial => Array a -> Int -> a
11211134
unsafeIndex = unsafeIndexImpl
11221135

11231136
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

Comments
 (0)