useGgxNamesOnGraph :: Map String Text -> GrGraph -> GrGraph
useGgxNamesOnGraph names graph =
  TGraph.fromNodesAndEdges (TGraph.typeGraph graph)
    [ (Node n (makeInfo n), nodeId ntype) | (Node n _, ntype, _) <- TGraph.nodesInContext graph ]
    [ (Edge e s t (makeInfo e), edgeId etype) | (_, Edge e s t _, etype, _) <- TGraph.edgesInContext graph ]
  where makeInfo elemId = Just $ Metadata (Map.lookup ("I" ++ show elemId) names) Nothing
useGgxNamesOnGraph :: Map String Text -> GrGraph -> GrGraph
useGgxNamesOnGraph names graph =
  TGraph.fromNodesAndEdges (TGraph.typeGraph graph)
    [ (Node n (makeInfo n), nodeId ntype) | (Node n _, ntype, _) <- TGraph.nodesInContext graph ]
    [ (Edge e s t (makeInfo e), edgeId etype) | (_, Edge e s t _, etype, _) <- TGraph.edgesInContext graph ]
  where makeInfo elemId = Just $ Metadata (Map.lookup ("I" ++ show elemId) names) Nothing
useGgxNamesOnGraph names graph =
  TGraph.fromNodesAndEdges (TGraph.typeGraph graph)
    [ (Node n (makeInfo n), nodeId ntype) | (Node n _, ntype, _) <- TGraph.nodesInContext graph ]
    [ (Edge e s t (makeInfo e), edgeId etype) | (_, Edge e s t _, etype, _) <- TGraph.edgesInContext graph ]
  where makeInfo elemId = Just $ Metadata (Map.lookup ("I" ++ show elemId) names) Nothing