mapM -base -containers

mapMaybeT :: (m (Maybe a) -> n (Maybe b)) -> MaybeT m a -> MaybeT n b
transformers Control.Monad.Trans.Maybe
Transform the computation inside a MaybeT. *  (mapMaybeT f m) = f (runMaybeT >  
type NodeMapM a b g r = State (NodeMap a, g a b) r
fgl Data.Graph.Inductive.NodeMap
Graph construction monad; handles passing both the NodeMap and the Graph.