code: def subset(self, names):
          
          vld = VarLookupDict(self._namespaces)
          new_ns = dict((name, vld[name]) for name in names)
          return EvalEnvironment([new_ns], self.flags)
docs: Creates a new, flat EvalEnvironment that contains only
          the variables specified.