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;
 }