It would be useful to extend the capabilities of the EGraph Macronize function to non-$\mathbb{Z}^3$ nodes. Currently, there is an unexpected behaviour of this function for certain egraphs (see code below)
EG = EGraph([((-0.2519, 0.436, 0.0), (-0.4875, 0.0045, 0.0)), ((-0.2519, 0.436, 0.0), (0.2433, 0.4243, 0.0)), ((-0.2519, 0.436, 0.0), (-0.2519, 0.436, 1.0)), ((0.5017, -0.0012, 0.0), (0.2433, 0.4243, 0.0)), ((0.5017, -0.0012, 0.0), (0.2449, -0.4258, 0.0)), ((0.5017, -0.0012, 0.0), (0.5017, -0.0012, 1.0)), ((-0.2516, -0.4327, 0.0), (-0.4875, 0.0045, 0.0)), ((-0.2516, -0.4327, 0.0), (0.2449, -0.4258, 0.0)), ((-0.2516, -0.4327, 0.0), (-0.2516, -0.4327, 1.0)), ((0.0032, -0.0051, 0.0), (-0.4875, 0.0045, 0.0)), ((0.0032, -0.0051, 0.0), (0.2433, 0.4243, 0.0)), ((0.0032, -0.0051, 0.0), (0.2449, -0.4258, 0.0)), ((0.0032, -0.0051, 0.0), (0.0032, -0.0051, 1.0)), ((-1.0, 0.0024, 0.0), (-0.4875, 0.0045, 0.0)), ((-1.0, 0.0024, 0.0), (-1.0, 0.0024, 1.0)), ((0.4967, 0.8702, 0.0), (0.2433, 0.4243, 0.0)), ((0.4967, 0.8702, 0.0), (0.4967, 0.8702, 1.0)), ((0.5012, -0.8726, 0.0), (0.2449, -0.4258, 0.0)), ((0.5012, -0.8726, 0.0), (0.5012, -0.8726, 1.0)), ((-0.2519, 0.436, 1.0), (-0.4632, 0.0009, 1.0)), ((-0.2519, 0.436, 1.0), (0.2333, 0.4009, 1.0)), ((-0.2519, 0.436, 1.0), (-0.2519, 0.436, 2.0)), ((0.5017, -0.0012, 1.0), (0.2333, 0.4009, 1.0)), ((0.5017, -0.0012, 1.0), (0.2332, -0.4057, 1.0)), ((0.5017, -0.0012, 1.0), (0.5017, -0.0012, 2.0)), ((-0.2516, -0.4327, 1.0), (-0.4632, 0.0009, 1.0)), ((-0.2516, -0.4327, 1.0), (0.2332, -0.4057, 1.0)), ((-0.2516, -0.4327, 1.0), (-0.2516, -0.4327, 2.0)), ((0.0032, -0.0051, 1.0), (-0.4632, 0.0009, 1.0)), ((0.0032, -0.0051, 1.0), (0.2333, 0.4009, 1.0)), ((0.0032, -0.0051, 1.0), (0.2332, -0.4057, 1.0)), ((0.0032, -0.0051, 1.0), (0.0032, -0.0051, 2.0)), ((-1.0, 0.0024, 1.0), (-0.4632, 0.0009, 1.0)), ((-1.0, 0.0024, 1.0), (-1.0, 0.0024, 2.0)), ((0.4967, 0.8702, 1.0), (0.2333, 0.4009, 1.0)), ((0.4967, 0.8702, 1.0), (0.4967, 0.8702, 2.0)), ((0.5012, -0.8726, 1.0), (0.2332, -0.4057, 1.0)), ((0.5012, -0.8726, 1.0), (0.5012, -0.8726, 2.0)), ((-0.2519, 0.436, 2.0), (-0.4875, 0.0045, 2.0)), ((-0.2519, 0.436, 2.0), (0.2433, 0.4243, 2.0)), ((0.5017, -0.0012, 2.0), (0.2433, 0.4243, 2.0)), ((0.5017, -0.0012, 2.0), (0.2449, -0.4258, 2.0)), ((-0.2516, -0.4327, 2.0), (-0.4875, 0.0045, 2.0)), ((-0.2516, -0.4327, 2.0), (0.2449, -0.4258, 2.0)), ((0.0032, -0.0051, 2.0), (-0.4875, 0.0045, 2.0)), ((0.0032, -0.0051, 2.0), (0.2433, 0.4243, 2.0)), ((0.0032, -0.0051, 2.0), (0.2449, -0.4258, 2.0)), ((-1.0, 0.0024, 2.0), (-0.4875, 0.0045, 2.0)), ((0.4967, 0.8702, 2.0), (0.2433, 0.4243, 2.0)), ((0.5012, -0.8726, 2.0), (0.2449, -0.4258, 2.0))])
print(EG.number_of_nodes()) # it's 30
MEG = EG.macronize(True)
print(MEG.number_of_nodes()) # gives 121 as opposed to 120.
2: Somewhat important. Needed this quarter.