@staticmethod<EOL><INDENT>def __get_or_create(<EOL>ns_cache: NamespaceMap,<EOL>name: sym.Symbol,<EOL>module: types.ModuleType = None,<EOL>core_ns_name=CORE_NS,<EOL>) -> lmap.Map:<DEDENT>
ns = ns_cache.entry(name, None)<EOL>if ns is not None:<EOL><INDENT>return ns_cache<EOL><DEDENT>new_ns = Namespace(name, module=module)<EOL>if name.name != core_ns_name:<EOL><INDENT>core_ns = ns_cache.entry(sym.symbol(core_ns_name), None)<EOL>assert core_ns is not None, "<STR_LIT>"<EOL>new_ns.refer_all(core_ns)<EOL><DEDENT>return ns_cache.assoc(name, new_ns)<EOL>
Private swap function used by `get_or_create` to atomically swap
        the new namespace map into the global cache.