static public ProcessWithLog <LogEntryT, Result <ErrT, NewOkT> > ResultAndThenMap <LogEntryT, ErrT, OkT, NewOkT>( this ProcessWithLog <LogEntryT, Result <ErrT, OkT> > orig, Func <OkT, Result <ErrT, NewOkT> > andThen) => orig.MapResult(previousResult => previousResult.Ok == null ? new Result <ErrT, NewOkT>(Err: previousResult.Err) : andThen(previousResult.Ok));