diff options
-rw-r--r-- | StackSet.hs | 5 | ||||
-rw-r--r-- | tests/Properties.hs | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/StackSet.hs b/StackSet.hs index 9666d6a..b052141 100644 --- a/StackSet.hs +++ b/StackSet.hs @@ -107,8 +107,6 @@ index k w = fromJust (M.lookup k (stacks w)) -- visible on the current screen. If the index is out of range an exception is -- thrown. view :: (Integral i, Integral j) => i -> StackSet i j a -> StackSet i j a --- view n w | n >= 0 && n < fromIntegral (M.size (stacks w)) -- coerce - view n w | M.member n (stacks w) = if M.member n (ws2screen w) then w { current = n } else tweak (fromJust $ screen (current w) w) @@ -116,8 +114,7 @@ view n w | M.member n (stacks w) where tweak sc = w { screen2ws = M.insert sc n (screen2ws w) , ws2screen = M.insert n sc (M.filter (/=sc) (ws2screen w)) - , current = n - } + , current = n } -- | That screen that workspace 'n' is visible on, if any. screen :: Integral i => i -> StackSet i j a -> Maybe j diff --git a/tests/Properties.hs b/tests/Properties.hs index 83aba87..19ccf49 100644 --- a/tests/Properties.hs +++ b/tests/Properties.hs @@ -17,6 +17,7 @@ import System.Random import Text.Printf import Data.List (nub,sort,group,sort,intersperse,genericLength) import Data.Map (keys,elems) +import qualified Data.Map as M -- --------------------------------------------------------------------- -- QuickCheck properties for the StackSet @@ -40,6 +41,10 @@ fromList (o,m,xs) = view o $ foldr (\(i,ys) s -> -- --------------------------------------------------------------------- +-- | /O(n)/. Number of stacks +size :: T -> Int +size = M.size . stacks + -- | Height of stack 'n' height :: Int -> T -> Int height i w = length (index i w) |