(!) :: (Show k,Ord k) => Map k a -> k -> a
(!) mp key = case Map.lookup key mp of
  Nothing -> error $ "Key "++show key++" not found in map "++show (Map.keys mp)
  Just r -> r
(!) :: (Show k,Ord k) => Map k a -> k -> a
(!) mp key = case Map.lookup key mp of
  Nothing -> error $ "Key "++show key++" not found in map "++show (Map.keys mp)
  Just r -> r
(!) mp key = case Map.lookup key mp of
  Nothing -> error $ "Key "++show key++" not found in map "++show (Map.keys mp)
  Just r -> r