@Nullable
  public Value getValue() throws EvaluateException {
    if (!myComputed) {
      try {
        myValue = myComputable.compute();
      }
      catch (EvaluateException e) {
        myException = e;
      }
      myComputed = true;
    }
    if (myException != null) {
      throw myException;
    }
    return myValue;
  }
@Nullable
  public Value getValue()