@@ -0,0 +1,37 @@
9+import Prelude hiding (any)
10+import qualified Data.Map as Map
11+import Data.Map.Internal (Map(..))
18+fromKeys :: (Ord k) => (k -> v) -> [k] -> Map.Map k v
19+fromKeys toValue keys =
20+ Map.fromList $ map (\k -> (k, toValue k)) keys
23+fromKeysA :: (Applicative f, Ord k) => (k -> f v) -> [k] -> f (Map.Map k v)
24+fromKeysA toValue keys =
25+ Map.fromList <$> traverse (\k -> (,) k <$> toValue k) keys
33+any :: (v -> Bool) -> Map.Map k v -> Bool
37+ go (Bin _ _ v l r) = isGood v || go l || go r