The standard method value provides a way to evaluate Gates at particular inputs, provided in the form of a ValueHashTable. The results are cached, and thus are not recomputed when called again with the same Gate and ValueHashTable as inputs.
i1 : declareVariable X
o1 = X
o1 : InputGate
i2 : declareVariable Y
o2 = Y
o2 : InputGate
i3 : C = sumGate {X+Y,Y,X}
o3 = ((X + Y) + Y + X)
o3 : SumGate
i4 : D = productGate {X*Y,Y,C}
o4 = ((X * Y) * Y * ((X + Y) + Y + X))
o4 : ProductGate