@Override
  public @Nullable T orNull() {
    switch (myState) {
      case FINISHED:
        throw new IllegalStateException("Matching is already finished");
      case NOT_MATCHED:
      case MATCHED:
        myState = State.FINISHED;
        return myValue;
      default:
        throw new IllegalStateException("'then'/'thenGet'/'or' call is expected");
    }
  }
@Override
  public @Nullable T orNull()