Stream<S> mapFold<S>(Func1<L, S> onLeft, Func1<R, S> onRight) => map((s) => s.fold(onLeft, onRight));