emptyDepGraph :: (a -> b -> [c]) -> (c -> a) -> DepGraph a b c
emptyDepGraph f pf = DepGraph { dataMap = Map.empty, getPredecessors = f
                              , getKey = pf }
emptyDepGraph :: (a -> b -> [c]) -> (c -> a) -> DepGraph a b c
emptyDepGraph f pf = DepGraph { dataMap = Map.empty, getPredecessors = f
                              , getKey = pf }
emptyDepGraph f pf = DepGraph { dataMap = Map.empty, getPredecessors = f
                              , getKey = pf }