Safe Haskell  Safe 

Language  Haskell2010 
 newtype TMapChan k a = TMapChan {
 runTMapChan :: TVar (HashMap k (TChan a))
 newTMapChan :: STM (TMapChan k a)
 insert :: (Eq k, Hashable k) => TMapChan k a > k > a > STM ()
 insertMany :: (Eq k, Hashable k) => TMapChan k a > k > [a] > STM ()
 insertFirst :: (Eq k, Hashable k) => TMapChan k a > k > a > STM ()
 lookup :: (Eq k, Hashable k) => TMapChan k a > k > STM a
 tryLookup :: (Eq k, Hashable k) => TMapChan k a > k > STM (Maybe a)
 lookupAll :: (Eq k, Hashable k) => TMapChan k a > k > STM [a]
 observe :: (Eq k, Hashable k) => TMapChan k a > k > STM a
 tryObserve :: (Eq k, Hashable k) => TMapChan k a > k > STM (Maybe a)
 observeAll :: (Eq k, Hashable k) => TMapChan k a > k > STM [a]
 delete :: (Eq k, Hashable k) => TMapChan k a > k > STM ()
 deleteAll :: (Eq k, Hashable k) => TMapChan k a > k > STM ()
 keys :: TMapChan k a > STM [k]
 getTChan :: (Eq k, Hashable k) => TMapChan k a > k > STM (TChan a)
 setTChan :: (Eq k, Hashable k) => TMapChan k a > k > TChan a > STM ()
 broadcast :: (Eq k, Hashable k) => TMapChan k a > a > STM ()
 cloneAt :: (Eq k, Hashable k) => TMapChan k a > k > k > STM ()
 cloneAll :: (Eq k, Hashable k) => TMapChan k a > k > STM ()
 cloneAllUniquely :: (Eq k, Hashable k, Eq a, Hashable a) => TMapChan k a > k > STM ()
Documentation
TMapChan  

newTMapChan :: STM (TMapChan k a) Source
insertMany :: (Eq k, Hashable k) => TMapChan k a > k > [a] > STM () Source
insertFirst :: (Eq k, Hashable k) => TMapChan k a > k > a > STM () Source
Inserts the element to the head of the stack, to be viewed next
lookup :: (Eq k, Hashable k) => TMapChan k a > k > STM a Source
Blocks until there's a value available to remove from the mutlimap
observe :: (Eq k, Hashable k) => TMapChan k a > k > STM a Source
Blocks until there's a vale available to view, without removing it
observeAll :: (Eq k, Hashable k) => TMapChan k a > k > STM [a] Source
delete :: (Eq k, Hashable k) => TMapChan k a > k > STM () Source
Deletes the next element in the map, if it exists. Doesn't block.
Utils
getTChan :: (Eq k, Hashable k) => TMapChan k a > k > STM (TChan a) Source
Creates a new one if it doesn't already exist