code: public <R> Mutable<R> mapOutputToObj(final Function<Character, R> fn) {
          final MutableChar host = this;
          return new Mutable<R>() {
              @Override
              public R get() {
                  return fn.apply(host.get());
              }
  
          };
      }
docs: Use the supplied function to perform a lazy transform operation when getValue is called
  <pre>
  {@code
  MutableChar mutable = MutableChar.fromExternal(()->!this.value,val->!this.value);
  Mutable<Character> withOverride = mutable.mapOutput(b->{
  if(override)
  return 'a';
  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