Parameter Right_variadic._

let weight: change => int;

weight ch returns the weight of the change ch. Used to find the smallest patch.

let test: D.state => D.left => D.right => result(D.eq, D.diff);

test st xl xr tests if the elements xl and xr are co mpatible (Ok) or not (Error).

let update: change => D.state => (D.state, array(D.right));

update ch st returns the new state after applying a change. The update_result type also contains expansions in the variadic case.