Fix up IntMap showTree deprecation story (#413)
authorDavid Feuer <David.Feuer@gmail.com>
Tue, 21 Feb 2017 05:08:52 +0000 (00:08 -0500)
committerGitHub <noreply@github.com>
Tue, 21 Feb 2017 05:08:52 +0000 (00:08 -0500)
Export deprecated copies from the places we don't want them,
and non-deprecated originals from internal places we do
want them. This allows the test suite to run without warnings,
and gives users a way to avoid them when using these functions.

Data/IntMap/Internal.hs
Data/IntMap/Internal/Debug.hs [new file with mode: 0644]
Data/IntMap/Internal/DeprecatedDebug.hs [new file with mode: 0644]
Data/IntMap/Lazy.hs
Data/IntMap/Strict.hs
containers.cabal
tests/intmap-properties.hs

index 620ffa8..9271ba1 100644 (file)
@@ -3236,9 +3236,6 @@ splitRoot orig =
 {--------------------------------------------------------------------
   Debugging
 --------------------------------------------------------------------}
-{-# DEPRECATED showTree, showTreeWith
-    "These debugging functions will be moved to a separate module in future versions"
-    #-}
 
 -- | /O(n)/. Show the tree that implements the map. The tree is shown
 -- in a compressed, hanging format.
diff --git a/Data/IntMap/Internal/Debug.hs b/Data/IntMap/Internal/Debug.hs
new file mode 100644 (file)
index 0000000..a30dc69
--- /dev/null
@@ -0,0 +1,6 @@
+module Data.IntMap.Internal.Debug
+  ( showTree
+  , showTreeWith
+  ) where
+
+import Data.IntMap.Internal
diff --git a/Data/IntMap/Internal/DeprecatedDebug.hs b/Data/IntMap/Internal/DeprecatedDebug.hs
new file mode 100644 (file)
index 0000000..2894999
--- /dev/null
@@ -0,0 +1,20 @@
+module Data.IntMap.Internal.DeprecatedDebug where
+import qualified Data.IntMap.Internal as IM
+import Data.IntMap.Internal (IntMap)
+
+{-# DEPRECATED showTree, showTreeWith
+    "These debugging functions will be removed from this module. They are available from Data.IntMap.Internal.Debug."
+    #-}
+
+-- | /O(n)/. Show the tree that implements the map. The tree is shown
+-- in a compressed, hanging format.
+showTree :: Show a => IntMap a -> String
+showTree = IM.showTree
+
+{- | /O(n)/. The expression (@'showTreeWith' hang wide map@) shows
+ the tree that implements the map. If @hang@ is
+ 'True', a /hanging/ tree is shown otherwise a rotated tree is shown. If
+ @wide@ is 'True', an extra wide version is shown.
+-}
+showTreeWith :: Show a => Bool -> Bool -> IntMap a -> String
+showTreeWith = IM.showTreeWith
index 4fcc168..949ca66 100644 (file)
@@ -207,7 +207,8 @@ module Data.IntMap.Lazy (
     , showTreeWith
     ) where
 
-import Data.IntMap.Internal as IM
+import Data.IntMap.Internal as IM hiding (showTree, showTreeWith)
+import Data.IntMap.Internal.DeprecatedDebug
 
 -- $strictness
 --
index 8f033c5..6106cf9 100644 (file)
@@ -284,8 +284,6 @@ import Data.IntMap.Internal
   , partition
   , partitionWithKey
   , restrictKeys
-  , showTree
-  , showTreeWith
   , size
   , split
   , splitLookup
@@ -295,8 +293,9 @@ import Data.IntMap.Internal
   , toList
   , union
   , unions
-  , withoutKeys)
-
+  , withoutKeys
+  )
+import Data.IntMap.Internal.DeprecatedDebug (showTree, showTreeWith)
 import qualified Data.IntSet.Internal as IntSet
 import Utils.Containers.Internal.BitUtil
 import Utils.Containers.Internal.StrictFold
index 99341a9..987755d 100644 (file)
@@ -45,6 +45,7 @@ Library
         Data.IntMap.Lazy
         Data.IntMap.Strict
         Data.IntMap.Internal
+        Data.IntMap.Internal.Debug
         Data.IntMap.Merge.Lazy
         Data.IntMap.Merge.Strict
         Data.IntSet.Internal
@@ -74,6 +75,7 @@ Library
         Utils.Containers.Internal.StrictMaybe
         Utils.Containers.Internal.PtrEquality
         Data.Map.Internal.DeprecatedShowTree
+        Data.IntMap.Internal.DeprecatedDebug
 
     include-dirs: include
 
index 7cad004..db95338 100644 (file)
@@ -1,10 +1,11 @@
 {-# LANGUAGE CPP #-}
 
 #ifdef STRICT
-import Data.IntMap.Strict as Data.IntMap
+import Data.IntMap.Strict as Data.IntMap hiding (showTree)
 #else
-import Data.IntMap.Lazy as Data.IntMap
+import Data.IntMap.Lazy as Data.IntMap hiding (showTree)
 #endif
+import Data.IntMap.Internal.Debug (showTree)
 
 import Data.Monoid
 import Data.Maybe hiding (mapMaybe)