public static bool ApplyXGRS_huh(GRGEN_LGSP.LGSPGraphProcessingEnvironment procEnv) { object x = procEnv.GetVariableValue("x"); GRGEN_LGSP.LGSPGraph graph = procEnv.graph; GRGEN_LGSP.LGSPActions actions = procEnv.curActions; object a = procEnv.GetVariableValue("a"); GRGEN_MODEL.N node_a = (GRGEN_MODEL.N)a; int val_x = (int)x; // announce change so that debugger can show new value or transaction manager can record it and roll it back graph.ChangingNodeAttribute(node_a, GRGEN_MODEL.NodeType_N.AttributeType_i, GRGEN_LIBGR.AttributeChangeType.Assign, val_x, null); node_a.i = val_x; // add reflexive edge GRGEN_MODEL.E someEdge = GRGEN_MODEL.E.CreateEdge(graph, node_a, node_a); // here you could do other nifty things like deleting nodes, retyping graph elements, or calling rules return false; }