newNode :: a -> StGNG a (Node a)
newNode i = do
    nid <- newNodeId
    let node = Node nid i [] 0
    State.modify (&nodes %~ Map.insert nid node)
    return node
newNode :: a -> StGNG a (Node a)
newNode i = do
    nid <- newNodeId
    let node = Node nid i [] 0
    State.modify (&nodes %~ Map.insert nid node)
    return node
newNode i = do
    nid <- newNodeId
    let node = Node nid i [] 0
    State.modify (&nodes %~ Map.insert nid node)
    return node