Refactor internal modules (#324)
authorErtugrul Söylemez <esz@posteo.de>
Wed, 31 Aug 2016 14:50:01 +0000 (16:50 +0200)
committerDavid Feuer <David.Feuer@gmail.com>
Wed, 31 Aug 2016 14:50:01 +0000 (10:50 -0400)
* Ignore more dev files.

* Rename .Base modules to .Internal.

  * Data.IntMap.Base -> Data.IntMap.Internal
  * Data.IntSet.Base -> Data.IntSet.Internal
  * Data.Map.Base -> Data.Map.Internal
  * Data.Sequence.Base -> Data.Sequence.Internal
  * Data.Set.Base -> Data.Set.Internal

* Unhide internal modules, add missing warning.

* Unexpose utility modules except for .Utils.BitUtil and .Utils.BitQueue.

20 files changed:
.gitignore
Data/IntMap/Internal.hs [moved from Data/IntMap/Base.hs with 99% similarity]
Data/IntMap/Lazy.hs
Data/IntMap/Strict.hs
Data/IntSet.hs
Data/IntSet/Internal.hs [moved from Data/IntSet/Base.hs with 99% similarity]
Data/Map/Internal.hs [moved from Data/Map/Base.hs with 99% similarity]
Data/Map/Lazy.hs
Data/Map/Lazy/Merge.hs
Data/Map/Strict.hs
Data/Map/Strict/Internal.hs
Data/Sequence.hs
Data/Sequence/Internal.hs [moved from Data/Sequence/Base.hs with 99% similarity]
Data/Set.hs
Data/Set/Internal.hs [moved from Data/Set/Base.hs with 99% similarity]
benchmarks/LookupGE/LookupGE_IntMap.hs
benchmarks/LookupGE/LookupGE_Map.hs
containers.cabal
tests/map-properties.hs
tests/seq-properties.hs

index c8cb846..b599dc2 100644 (file)
@@ -1,4 +1,5 @@
 *.hi
+*.nix
 *.o
 *.p_hi
 *.prof
@@ -17,3 +18,5 @@ cabal.sandbox.config
 /benchmarks/bench-IntMap
 /benchmarks/bench-Sequence
 /benchmarks/SetOperations/bench-*
+/result
+/TAGS
similarity index 99%
rename from Data/IntMap/Base.hs
rename to Data/IntMap/Internal.hs
index 1f26af7..dfbd76b 100644 (file)
 #endif
 
 #include "containers.h"
-{-# OPTIONS_HADDOCK hide #-}
 
 -----------------------------------------------------------------------------
 -- |
--- Module      :  Data.IntMap.Base
+-- Module      :  Data.IntMap.Internal
 -- Copyright   :  (c) Daan Leijen 2002
 --                (c) Andriy Palamarchuk 2008
 -- License     :  BSD-style
@@ -68,7 +67,7 @@
 -- On GHC 7.0, reordering constructors from Nil | Tip | Bin to Bin | Tip | Nil
 -- improves the benchmark by circa 10%.
 
-module Data.IntMap.Base (
+module Data.IntMap.Internal (
     -- * Map type
       IntMap(..), Key          -- instance Eq,Show
 
@@ -255,8 +254,8 @@ import Data.Maybe (fromMaybe)
 import Data.Typeable
 import Prelude hiding (lookup, map, filter, foldr, foldl, null)
 
-import Data.IntSet.Base (Key)
-import qualified Data.IntSet.Base as IntSet
+import Data.IntSet.Internal (Key)
+import qualified Data.IntSet.Internal as IntSet
 import Data.Utils.BitUtil
 import Data.Utils.StrictFold
 import Data.Utils.StrictPair
@@ -432,7 +431,7 @@ fromListConstr :: Constr
 fromListConstr = mkConstr intMapDataType "fromList" [] Prefix
 
 intMapDataType :: DataType
-intMapDataType = mkDataType "Data.IntMap.Base.IntMap" [fromListConstr]
+intMapDataType = mkDataType "Data.IntMap.Internal.IntMap" [fromListConstr]
 
 #endif
 
index de4d122..90a7802 100644 (file)
@@ -208,7 +208,7 @@ module Data.IntMap.Lazy (
     , showTreeWith
     ) where
 
-import Data.IntMap.Base as IM
+import Data.IntMap.Internal as IM
 
 -- $strictness
 --
index 3ec5610..ec657d7 100644 (file)
@@ -57,7 +57,7 @@
 -- on strict maps, the resulting maps will be lazy.
 -----------------------------------------------------------------------------
 
--- See the notes at the beginning of Data.IntMap.Base.
+-- See the notes at the beginning of Data.IntMap.Internal.
 
 module Data.IntMap.Strict (
     -- * Strictness properties
@@ -218,7 +218,7 @@ module Data.IntMap.Strict (
 import Prelude hiding (lookup,map,filter,foldr,foldl,null)
 
 import Data.Bits
-import Data.IntMap.Base hiding
+import Data.IntMap.Internal hiding
     ( findWithDefault
     , singleton
     , insert
@@ -264,7 +264,7 @@ import Data.IntMap.Base hiding
     , fromDistinctAscList
     )
 
-import qualified Data.IntSet.Base as IntSet
+import qualified Data.IntSet.Internal as IntSet
 import Data.Utils.BitUtil
 import Data.Utils.StrictFold
 import Data.Utils.StrictPair
@@ -304,7 +304,7 @@ import Data.Functor((<$>))
 -- > findWithDefault 'x' 1 (fromList [(5,'a'), (3,'b')]) == 'x'
 -- > findWithDefault 'x' 5 (fromList [(5,'a'), (3,'b')]) == 'a'
 
--- See IntMap.Base.Note: Local 'go' functions and capturing]
+-- See IntMap.Internal.Note: Local 'go' functions and capturing]
 findWithDefault :: a -> Key -> IntMap a -> a
 findWithDefault def !k = go
   where
index 757abaa..cb8228c 100644 (file)
@@ -140,7 +140,7 @@ module Data.IntSet (
 #endif
             ) where
 
-import Data.IntSet.Base as IS
+import Data.IntSet.Internal as IS
 
 -- $strictness
 --
similarity index 99%
rename from Data/IntSet/Base.hs
rename to Data/IntSet/Internal.hs
index 71016f6..e16f78a 100644 (file)
 #endif
 
 #include "containers.h"
-{-# OPTIONS_HADDOCK hide #-}
 
 -----------------------------------------------------------------------------
 -- |
--- Module      :  Data.IntSet.Base
+-- Module      :  Data.IntSet.Internal
 -- Copyright   :  (c) Daan Leijen 2002
 --                (c) Joachim Breitner 2011
 -- License     :  BSD-style
@@ -97,7 +96,7 @@
 -- On GHC 7.0, reordering constructors from Nil | Tip | Bin to Bin | Tip | Nil
 -- improves the benchmark by circa 10%.
 
-module Data.IntSet.Base (
+module Data.IntSet.Internal (
     -- * Set type
       IntSet(..), Key -- instance Eq,Show
 
@@ -298,7 +297,7 @@ fromListConstr :: Constr
 fromListConstr = mkConstr intSetDataType "fromList" [] Prefix
 
 intSetDataType :: DataType
-intSetDataType = mkDataType "Data.IntSet.Base.IntSet" [fromListConstr]
+intSetDataType = mkDataType "Data.IntSet.Internal.IntSet" [fromListConstr]
 
 #endif
 
similarity index 99%
rename from Data/Map/Base.hs
rename to Data/Map/Internal.hs
index 6020b51..88b12f4 100644 (file)
 #define DEFINE_ALTERF_FALLBACK 1
 #endif
 
-{-# OPTIONS_HADDOCK hide #-}
-
 -----------------------------------------------------------------------------
 -- |
--- Module      :  Data.Map.Base
+-- Module      :  Data.Map.Internal
 -- Copyright   :  (c) Daan Leijen 2002
 --                (c) Andriy Palamarchuk 2008
 -- License     :  BSD-style
 -- On GHC 7.0, reordering constructors from Tip | Bin to Bin | Tip
 -- improves the benchmark by up to 10% on x86.
 
-module Data.Map.Base (
+module Data.Map.Internal (
     -- * Map type
       Map(..)          -- instance Eq,Show,Read
 
@@ -380,8 +378,8 @@ import qualified Data.Foldable as Foldable
 import Data.Typeable
 import Prelude hiding (lookup, map, filter, foldr, foldl, null, splitAt, take, drop)
 
-import qualified Data.Set.Base as Set
-import Data.Set.Base (Set)
+import qualified Data.Set.Internal as Set
+import Data.Set.Internal (Set)
 import Data.Utils.PtrEquality (ptrEq)
 import Data.Utils.StrictFold
 import Data.Utils.StrictPair
@@ -485,7 +483,7 @@ fromListConstr :: Constr
 fromListConstr = mkConstr mapDataType "fromList" [] Prefix
 
 mapDataType :: DataType
-mapDataType = mkDataType "Data.Map.Base.Map" [fromListConstr]
+mapDataType = mkDataType "Data.Map.Internal.Map" [fromListConstr]
 
 #endif
 
index 4f3e25f..917d187 100644 (file)
@@ -233,7 +233,7 @@ module Data.Map.Lazy (
     , valid
     ) where
 
-import Data.Map.Base as M
+import Data.Map.Internal as M
 import Prelude ()
 
 -- $strictness
index 97e7ee1..4d54014 100644 (file)
@@ -100,4 +100,4 @@ module Data.Map.Lazy.Merge (
     , runWhenMissing
     ) where
 
-import Data.Map.Base
+import Data.Map.Internal
index b3774c5..e4684cf 100644 (file)
@@ -63,7 +63,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
     (
index 08cadcb..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
     (
@@ -303,7 +301,7 @@ module Data.Map.Strict.Internal
 
 import Prelude hiding (lookup,map,filter,foldr,foldl,null,take,drop,splitAt)
 
-import Data.Map.Base
+import Data.Map.Internal
   ( Map (..)
   , AreWeStrict (..)
   , WhenMissing (..)
@@ -401,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
 
@@ -461,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
@@ -501,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
@@ -572,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
@@ -627,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
@@ -720,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
@@ -748,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
@@ -781,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
index 8d329c4..c891d8f 100644 (file)
@@ -149,5 +149,5 @@ module Data.Sequence (
     zipWith4,       -- :: (a -> b -> c -> d -> e) -> Seq a -> Seq b -> Seq c -> Seq d -> Seq e
     ) where
 
-import Data.Sequence.Base
+import Data.Sequence.Internal
 import Prelude ()
similarity index 99%
rename from Data/Sequence/Base.hs
rename to Data/Sequence/Internal.hs
index c79bd6c..31b5678 100644 (file)
 
 #include "containers.h"
 
-{-# OPTIONS_HADDOCK hide #-}
-
 -----------------------------------------------------------------------------
 -- |
--- Module      :  Data.Sequence.Base
+-- Module      :  Data.Sequence.Internal
 -- Copyright   :  (c) Ross Paterson 2005
 --                (c) Louis Wasserman 2009
 --                (c) Bertram Felgenhauer, David Feuer, Ross Paterson, and
@@ -84,7 +82,7 @@
 --
 -----------------------------------------------------------------------------
 
-module Data.Sequence.Base (
+module Data.Sequence.Internal (
     Elem(..), FingerTree(..), Node(..), Digit(..), Sized(..), MaybeForce,
 #if defined(DEFINE_PATTERN_SYNONYMS)
     Seq (.., Empty, (:<|), (:|>)),
index 07b566d..7610b8f 100644 (file)
@@ -159,7 +159,7 @@ module Data.Set (
 #endif
             ) where
 
-import Data.Set.Base as S
+import Data.Set.Internal as S
 
 -- $strictness
 --
similarity index 99%
rename from Data/Set/Base.hs
rename to Data/Set/Internal.hs
index 881e8ce..bda84be 100644 (file)
 
 #include "containers.h"
 
-{-# OPTIONS_HADDOCK hide #-}
-
 -----------------------------------------------------------------------------
 -- |
--- Module      :  Data.Set.Base
+-- Module      :  Data.Set.Internal
 -- Copyright   :  (c) Daan Leijen 2002
 -- License     :  BSD-style
 -- Maintainer  :  libraries@haskell.org
 -- Stability   :  provisional
 -- Portability :  portable
 --
+-- = WARNING
+--
+-- This module is considered __internal__.
+--
+-- The Package Versioning Policy __does not apply__.
+--
+-- This contents of this module may change __in any way whatsoever__
+-- and __without any warning__ between minor versions of this package.
+--
+-- Authors importing this module are expected to track development
+-- closely.
+--
+-- = Description
+--
 -- An efficient implementation of sets.
 --
 -- These modules are intended to be imported qualified, to avoid name
 -- On GHC 7.0, reordering constructors from Tip | Bin to Bin | Tip
 -- improves the benchmark by up to 10% on x86.
 
-module Data.Set.Base (
+module Data.Set.Internal (
             -- * Set type
               Set(..)       -- instance Eq,Ord,Show,Read,Data,Typeable
 
@@ -340,7 +352,7 @@ fromListConstr :: Constr
 fromListConstr = mkConstr setDataType "fromList" [] Prefix
 
 setDataType :: DataType
-setDataType = mkDataType "Data.Set.Base.Set" [fromListConstr]
+setDataType = mkDataType "Data.Set.Internal.Set" [fromListConstr]
 
 #endif
 
index 593da24..ff849b1 100644 (file)
@@ -2,7 +2,7 @@
 module LookupGE_IntMap where
 
 import Prelude hiding (null)
-import Data.IntMap.Base
+import Data.IntMap.Internal
 
 lookupGE1 :: Key -> IntMap a -> Maybe (Key,a)
 lookupGE1 k m =
index 82b2d08..56cabf9 100644 (file)
@@ -1,7 +1,7 @@
 {-# LANGUAGE BangPatterns, CPP #-}
 module LookupGE_Map where
 
-import Data.Map.Base
+import Data.Map.Internal
 
 lookupGE1 :: Ord k => k -> Map k a -> Maybe (k,a)
 lookupGE1 k m =
index 46b4556..dbd554d 100644 (file)
@@ -44,8 +44,8 @@ Library
         Data.IntMap
         Data.IntMap.Lazy
         Data.IntMap.Strict
-        Data.IntMap.Base
-        Data.IntSet.Base
+        Data.IntMap.Internal
+        Data.IntSet.Internal
         Data.IntSet
         Data.Map
         Data.Map.Lazy
@@ -53,15 +53,17 @@ Library
         Data.Map.Strict.Internal
         Data.Map.Strict
         Data.Map.Strict.Merge
-        Data.Map.Base
-        Data.Set.Base
+        Data.Map.Internal
+        Data.Set.Internal
         Data.Set
         Data.Graph
         Data.Sequence
-        Data.Sequence.Base
+        Data.Sequence.Internal
         Data.Tree
         Data.Utils.BitUtil
         Data.Utils.BitQueue
+
+    other-modules:
         Data.Utils.StrictFold
         Data.Utils.StrictPair
         Data.Utils.StrictMaybe
@@ -177,7 +179,7 @@ benchmark lookupge-intmap
   ghc-options: -O2
   cpp-options: -DTESTING
   other-modules:
-    Data.IntMap.Base
+    Data.IntMap.Internal
   build-depends:
     base >= 4.2 && < 5,
     containers,
@@ -192,7 +194,7 @@ benchmark lookupge-map
   ghc-options: -O2
   cpp-options: -DTESTING
   other-modules:
-    Data.Map.Base
+    Data.Map.Internal
   build-depends:
     base >= 4.2 && < 5,
     containers,
index dc115c0..be56f00 100644 (file)
@@ -7,7 +7,7 @@ import Data.Map.Strict.Merge
 import Data.Map.Lazy as Data.Map
 import Data.Map.Lazy.Merge
 #endif
-import Data.Map.Base (Map (..), balanced, link2, link, bin)
+import Data.Map.Internal (Map (..), balanced, link2, link, bin)
 
 import Control.Applicative (Const(Const, getConst), pure, (<$>), (<*>))
 import Data.Functor.Identity (Identity(runIdentity))
index dc090e9..ca2f627 100644 (file)
@@ -1,4 +1,4 @@
-import Data.Sequence.Base
+import Data.Sequence.Internal
 
 import Control.Applicative (Applicative(..))
 import Control.Arrow ((***))