docs: def copy(self):
          """
          Make a copy of this SimLibrary, allowing it to be mutated without affecting the global version.
  
          :return:    A new SimLibrary object with the same library references but different dict/list references
          """
          o = SimLibrary()
          o.procedures = dict(self.procedures)
          o.non_returning = set(self.non_returning)
          o.prototypes = dict(self.prototypes)
          o.default_ccs = dict(self.default_ccs)
          o.names = list(self.names)
          return o