module Bio.Utils.Map 
  ( (!?!)
  ) where


import GHC.Stack       (HasCallStack)
import Data.Map.Strict (Map, 
                        (!?))
import Data.Maybe      (fromMaybe)

infix 9 !?!
(!?!) :: (HasCallStack, Ord k, Show k, Show a) => Map k a -> k -> a
!?! :: forall k a.
(HasCallStack, Ord k, Show k, Show a) =>
Map k a -> k -> a
(!?!) Map k a
m k
k = forall a. a -> Maybe a -> a
fromMaybe (forall a. HasCallStack => [Char] -> a
error forall a b. (a -> b) -> a -> b
$ [Char]
"cobot-io: No key " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> [Char]
show k
k forall a. [a] -> [a] -> [a]
++ [Char]
" in Map: " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> [Char]
show Map k a
m) forall a b. (a -> b) -> a -> b
$ Map k a
m forall k a. Ord k => Map k a -> k -> Maybe a
!? k
k