Refactor internal modules (#324)
[packages/containers.git] / Data / Map / Strict / Internal.hs
index 89d93ef..4581a91 100644 (file)
@@ -4,8 +4,6 @@
 {-# LANGUAGE Trustworthy #-}
 #endif
 
-{-# OPTIONS_HADDOCK hide #-}
-
 #include "containers.h"
 
 -----------------------------------------------------------------------------
@@ -79,7 +77,7 @@
 -- on strict maps, the resulting maps will be lazy.
 -----------------------------------------------------------------------------
 
--- See the notes at the beginning of Data.Map.Base.
+-- See the notes at the beginning of Data.Map.Internal.
 
 module Data.Map.Strict.Internal
     (
@@ -247,6 +245,9 @@ module Data.Map.Strict.Internal
     , withoutKeys
     , partition
     , partitionWithKey
+    , takeWhileAntitone
+    , dropWhileAntitone
+    , spanAntitone
 
     , mapMaybe
     , mapMaybeWithKey
@@ -267,6 +268,9 @@ module Data.Map.Strict.Internal
     , elemAt
     , updateAt
     , deleteAt
+    , take
+    , drop
+    , splitAt
 
     -- * Min\/Max
     , findMin
@@ -295,9 +299,9 @@ module Data.Map.Strict.Internal
     , link2
     ) where
 
-import Prelude hiding (lookup,map,filter,foldr,foldl,null)
+import Prelude hiding (lookup,map,filter,foldr,foldl,null,take,drop,splitAt)
 
-import Data.Map.Base
+import Data.Map.Internal
   ( Map (..)
   , AreWeStrict (..)
   , WhenMissing (..)
@@ -332,6 +336,8 @@ import Data.Map.Base
   , deleteMin
   , deleteMax
   , difference
+  , drop
+  , dropWhileAntitone
   , filter
   , filterWithKey
   , findIndex
@@ -378,9 +384,13 @@ import Data.Map.Base
   , showTree
   , showTreeWith
   , size
+  , spanAntitone
   , split
+  , splitAt
   , splitLookup
   , splitRoot
+  , take
+  , takeWhileAntitone
   , toList
   , toAscList
   , toDescList
@@ -389,13 +399,13 @@ import Data.Map.Base
   , valid
   , withoutKeys )
 
-import Data.Map.Base (bin, balanced)
+import Data.Map.Internal (bin, balanced)
 
 import Control.Applicative (Const (..))
 #if !MIN_VERSION_base(4,8,0)
 import Control.Applicative (Applicative (..), (<$>))
 #endif
-import qualified Data.Set.Base as Set
+import qualified Data.Set.Internal as Set
 import Data.Utils.StrictFold
 import Data.Utils.StrictPair
 
@@ -449,7 +459,7 @@ import Data.Functor.Identity (Identity (..))
 -- > findWithDefault 'x' 1 (fromList [(5,'a'), (3,'b')]) == 'x'
 -- > findWithDefault 'x' 5 (fromList [(5,'a'), (3,'b')]) == 'a'
 
--- See Map.Base.Note: Local 'go' functions and capturing
+-- See Map.Internal.Note: Local 'go' functions and capturing
 findWithDefault :: Ord k => a -> k -> Map k a -> a
 findWithDefault def k = k `seq` go
   where
@@ -489,7 +499,7 @@ singleton k x = x `seq` Bin 1 k x Tip Tip
 -- > insert 7 'x' (fromList [(5,'a'), (3,'b')]) == fromList [(3, 'b'), (5, 'a'), (7, 'x')]
 -- > insert 5 'x' empty                         == singleton 5 'x'
 
--- See Map.Base.Note: Type of local 'go' function
+-- See Map.Internal.Note: Type of local 'go' function
 insert :: Ord k => k -> a -> Map k a -> Map k a
 insert = go
   where
@@ -560,7 +570,7 @@ insertWithR = go
 -- > insertWithKey f 7 "xxx" (fromList [(5,"a"), (3,"b")]) == fromList [(3, "b"), (5, "a"), (7, "xxx")]
 -- > insertWithKey f 5 "xxx" empty                         == singleton 5 "xxx"
 
--- See Map.Base.Note: Type of local 'go' function
+-- See Map.Internal.Note: Type of local 'go' function
 insertWithKey :: Ord k => (k -> a -> a -> a) -> k -> a -> Map k a -> Map k a
 insertWithKey = go
   where
@@ -615,7 +625,7 @@ insertWithKeyR = go
 -- > insertLookup 5 "x" (fromList [(5,"a"), (3,"b")]) == (Just "a", fromList [(3, "b"), (5, "x")])
 -- > insertLookup 7 "x" (fromList [(5,"a"), (3,"b")]) == (Nothing,  fromList [(3, "b"), (5, "a"), (7, "x")])
 
--- See Map.Base.Note: Type of local 'go' function
+-- See Map.Internal.Note: Type of local 'go' function
 insertLookupWithKey :: Ord k => (k -> a -> a -> a) -> k -> a -> Map k a
                     -> (Maybe a, Map k a)
 insertLookupWithKey f0 kx0 x0 t0 = toPair $ go f0 kx0 x0 t0
@@ -708,7 +718,7 @@ update f = updateWithKey (\_ x -> f x)
 -- > updateWithKey f 7 (fromList [(5,"a"), (3,"b")]) == fromList [(3, "b"), (5, "a")]
 -- > updateWithKey f 3 (fromList [(5,"a"), (3,"b")]) == singleton 5 "a"
 
--- See Map.Base.Note: Type of local 'go' function
+-- See Map.Internal.Note: Type of local 'go' function
 updateWithKey :: Ord k => (k -> a -> Maybe a) -> k -> Map k a -> Map k a
 updateWithKey = go
   where
@@ -736,7 +746,7 @@ updateWithKey = go
 -- > updateLookupWithKey f 7 (fromList [(5,"a"), (3,"b")]) == (Nothing,  fromList [(3, "b"), (5, "a")])
 -- > updateLookupWithKey f 3 (fromList [(5,"a"), (3,"b")]) == (Just "b", singleton 5 "a")
 
--- See Map.Base.Note: Type of local 'go' function
+-- See Map.Internal.Note: Type of local 'go' function
 updateLookupWithKey :: Ord k => (k -> a -> Maybe a) -> k -> Map k a -> (Maybe a,Map k a)
 updateLookupWithKey f0 k0 t0 = toPair $ go f0 k0 t0
  where
@@ -769,7 +779,7 @@ updateLookupWithKey f0 k0 t0 = toPair $ go f0 k0 t0
 -- > alter f 7 (fromList [(5,"a"), (3,"b")]) == fromList [(3, "b"), (5, "a"), (7, "c")]
 -- > alter f 5 (fromList [(5,"a"), (3,"b")]) == fromList [(3, "b"), (5, "c")]
 
--- See Map.Base.Note: Type of local 'go' function
+-- See Map.Internal.Note: Type of local 'go' function
 alter :: Ord k => (Maybe a -> Maybe a) -> k -> Map k a -> Map k a
 alter = go
   where
@@ -792,7 +802,7 @@ alter = go
 
 -- | /O(log n)/. The expression (@'alterF' f k map@) alters the value @x@ at @k@, or absence thereof.
 -- 'alterF' can be used to inspect, insert, delete, or update a value in a 'Map'.
--- In short : @'lookup' k <$> 'alterF' f k m = f ('lookup' k m)@.
+-- In short: @'lookup' k \<$\> 'alterF' f k m = f ('lookup' k m)@.
 --
 -- Example:
 --