• 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
    
    094ab658
typing.ml 22.7 KB