please delay erasing symbols until jdict is more mature. Thank you for items function. the comments in jdict suggest that 1 2 (16!:_8) dict could retrieve keys and values, but it crashes J. items works fine though.
The workflow for symbol key addition into "our dictionary" is "getsert": Just for missing boxed strings, append with maxintsofar (+ i.) count of new items into both (reversed mirror) dictionaries. update maxintsofar with maxintsofar + count. Then get the integers for "our keys" corresponding to the symbol/boxed strings being associated. concurrent/threaded operation suggests that possibly not every put statement is executed before get statements that rely on the puts having been executed, are. Even if this were guaranteed, a symbols table should not be set as concurrent to avoid multiple threads/users setting the same symbol, and replacing the associated integer to a boxed string with a new value that invalidates one thread/user's assumption.
getsert is fundamentally thread unsafe, and so symbols table cannot be set to concurrent, IMO. Or there needs to be a "wait for all puts" synchronization call. Another option, especially useful, for symbols or the nuvoc example dictionary is "bidirectional" unique values dictionary, where values are hashed and getv function retrieves keys.