This was documented before, but never enforced. Passing non-strings could have strange side-effects and enforcing a string simplifies other implementation.