It occurred to me that an alternative to reserving _* names for the implementor might be to reserve some of the name space for the user (i.e., the implementor would not be allowed to introduce any such names). Perhaps a $ character in a name could do this...