unpacked-containers-0: Unpacked containers via backpack

Safe HaskellSafe
LanguageHaskell2010

Map.Internal.Debug

Synopsis

Documentation

showTree :: (Show Key, Show a) => Map a -> String Source #

O(n). Show the tree that implements the map. The tree is shown in a compressed, hanging format. See showTreeWith.

showTreeWith :: (Key -> a -> String) -> Bool -> Bool -> Map a -> String Source #

O(n). The expression (showTreeWith showelem hang wide map) shows the tree that implements the map. Elements are shown using the showElem function. 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.

 Map> let t = fromDistinctAscList [(x,()) | x <- [1..5]]
 Map> putStrLn $ showTreeWith (\k x -> show (k,x)) True False t
 (4,())
 +--(2,())
 |  +--(1,())
 |  +--(3,())
 +--(5,())

 Map> putStrLn $ showTreeWith (\k x -> show (k,x)) True True t
 (4,())
 |
 +--(2,())
 |  |
 |  +--(1,())
 |  |
 |  +--(3,())
 |
 +--(5,())

 Map> putStrLn $ showTreeWith (\k x -> show (k,x)) False True t
 +--(5,())
 |
 (4,())
 |
 |  +--(3,())
 |  |
 +--(2,())
    |
    +--(1,())

showsTree :: (Key -> a -> String) -> Bool -> [String] -> [String] -> Map a -> ShowS Source #

showsTreeHang :: (Key -> a -> String) -> Bool -> [String] -> Map a -> ShowS Source #

valid :: Map a -> Bool Source #

O(n). Test if the internal map structure is valid.

valid (fromAscList [(3,"b"), (5,"a")]) == True
valid (fromAscList [(5,"a"), (3,"b")]) == False

ordered :: Map b -> Bool Source #

Test if the keys are ordered correctly.

balanced :: Map a -> Bool Source #

Test if a map obeys the balance invariants.

validsize :: Map b -> Bool Source #

Test if each node of a map reports its size correctly.