• Andrei Paskevich's avatar
    several improvements, refactorings, and fixes · 094ab658
    Andrei Paskevich authored
    - prevent leak of idents by separating them into two types:
      - "preid" -- user-created and non-unique
      - "ident" -- unique, generated from "preid" by various
                   smart constructors: create_tysymbol, etc
      This guarantees that two different symbols never share
      an ident.
    - no need to hashcons tysymbols, fsymbols, and psymbols,
      as they are unique by construction
    - make separate hashconsing smart constructors for decl
    - export namespace as a private record (no reason to not to)
    - some code rearrangement in hashconsing of decls
    - fix namespace merging in close_namespace
    - namespace name can be just a string, no need to use ident
ident.mli 2.73 KB