module Disco.Util where
import qualified Data.Map as M
infixr 1 ==>
(==>) :: a -> b -> (a, b)
==> :: forall a b. a -> b -> (a, b)
(==>) = (,)
for :: [a] -> (a -> b) -> [b]
for :: forall a b. [a] -> (a -> b) -> [b]
for = forall a b c. (a -> b -> c) -> b -> a -> c
flip forall a b. (a -> b) -> [a] -> [b]
map
(!) :: (Show k, Ord k) => M.Map k v -> k -> v
Map k v
m ! :: forall k v. (Show k, Ord k) => Map k v -> k -> v
! k
k = case forall k a. Ord k => k -> Map k a -> Maybe a
M.lookup k
k Map k v
m of
Maybe v
Nothing -> forall a. HasCallStack => [Char] -> a
error forall a b. (a -> b) -> a -> b
$ [Char]
"key " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> [Char]
show k
k forall a. [a] -> [a] -> [a]
++ [Char]
" is not an element in the map"
Just v
v -> v
v