How are ListLabels, ArrayLabels, etc. implemented?

The implementation of labeled modules (which are, as you noticed, unlabeled) are compiled with -nolabels which tells the typechecker to ignore labels altogether. In particular this makes the (unlabeled) implementations compatible with the (labeled) interfaces.

The -nolabels flag is passed via the Compflags script:

Cheers,
Nicolas

1 Like