code: public MutableLong mapOutput(final LongUnaryOperator fn) {
          final MutableLong host = this;
          return new MutableLong() {
              @Override
              public long getAsLong() {
                  return fn.applyAsLong(host.getAsLong());
              }
  
          };
      }
docs: Use the supplied function to perform a lazy transform operation when getValue is called
  <pre>
  {@code
  MutableLong mutable = MutableLong.fromExternal(()->!this.value,val->!this.value);
  MutableLong withOverride = mutable.mapOutput(b->{
  if(override)
  return 10.0;
  return b;
  });
  
  }
  </pre>
  
  
  @param fn Map function to be applied to the result when getValue is called
  @return Mutable that lazily applies the provided function when getValue is called to the return value