Arraylabels.ml just has "include Array" so we must implement the include keyword.
However, the labels come about because arraylabels.mli puts some labels on: they do not exist in array.ml or arraylabels.ml.
So, to properly apply a function with labelled arguments, we will have to parse the .mli. This is the first time we have had to consider parsing a signature for a useful purpose.
Arraylabels.ml just has "include Array" so we must implement the include keyword.
However, the labels come about because arraylabels.mli puts some labels on: they do not exist in array.ml or arraylabels.ml.
So, to properly apply a function with labelled arguments, we will have to parse the .mli. This is the first time we have had to consider parsing a signature for a useful purpose.