Once the caller is satisfied with the setup of types, weights,
and partitioning, this function must be called, thereby committing the
parameters until any changes are made. If no character types have been
assigned, the function will fail with an error code.