public override void tap(OnValue <T> onValue) { onValue(value); }
public override void tap(OnValue <T> onValue) { }
public abstract void tap(OnValue <T> onValue);