Fold Left and Right into the value of one type
@override T fold<T>(T Function(L left) fnL, T Function(R right) fnR) { return fnR(value); }