Lerp all the numbers in the string from their values in `a` to their
values in `b`.
-Numbers may have a leading `-` and a single `.` to mark the decimal
-point, but something must be after the `.`. If both of the numbers in
-a pair are integers, the result is clamped to an integer.
+Numbers may have a leading "-" and a single "." to mark the decimal
+point, but something must be after the ".". No other floating point
+syntax (e.g. `1e6`) is supported. They are treated as fixed-point
+values, with the point's position itself interpolating.
-For example, `numericLerp("0.0", "100", 0.123) === "12.3"` because the
-`.` in `0.0` is interpreted as a decimal point.
+For example, `numericLerp("0.0", "100.0", 0.123) === "12.3"` because
+the `.` in `0.0` is interpreted as a decimal point.
But `numericLerp("0.", "100.", 0.123) === "12."` because the strings
are interpreted as integers followed by a full stop.
### stringLerp.diff(s, t) and stringLerp.patch(edits, s)
These are the functions used to implement `diffLerp`. `diff`
-calculates a series of edit operations - substitutions, insertions,
+calculates an array of edit operations - substitutions, insertions,
and deletions - to turn `s` into `t`.
+The type of the edit operations is unspecified. What is guaranteed is:
+
+* There's an Array of them.
+* The array can be cut up and applied in-order but piecemeal.
+* They are simple objects, i.e. can be (de)serialized via JSON and fed
+ into the same version of `patch` later.
+
+Do not rely on edit operations to be exactly the same type (or same
+operations) between versions / installations.
+
### stringLerp.levenshteinMatrix(s, t, ins, del, sub)