Creates a Triple which left, middle and/or right values have been replaced.
Triple<L, M, R> replace({L? left, M? middle, R? right}) => Triple(left ?? this.left, middle ?? this.middle, right ?? this.right);