createEdgePairRE :: Label -> Id -> Id -> GS (Edge, Edge, Node, Node)
createEdgePairRE l snid enid = do (e1, _, _) <- createEdgeRE l snid enid
                                  (e2, en2, sn2) <- createEdgeRE l enid snid
                                  return (e1, e2, sn2, en2)
createEdgePairRE :: Label -> Id -> Id -> GS (Edge, Edge, Node, Node)
createEdgePairRE l snid enid = do (e1, _, _) <- createEdgeRE l snid enid
                                  (e2, en2, sn2) <- createEdgeRE l enid snid
                                  return (e1, e2, sn2, en2)
createEdgePairRE l snid enid = do (e1, _, _) <- createEdgeRE l snid enid
                                  (e2, en2, sn2) <- createEdgeRE l enid snid
                                  return (e1, e2, sn2, en2)