old_contents: """Define names for all type symbols known in the standard interpreter.
  
  Types that are part of optional modules (e.g. array) are not listed.
  """
  import sys
  
  # Iterators in Python aren't a matter of type but of protocol.  A large
  # and changing number of builtin types implement *some* flavor of
  # iterator.  Don't check the type!  Use hasattr to check for both
  # "__iter__" and "next" attributes instead.
  
  NoneType = type(None)
  TypeType = type
  ObjectType = object
  
  IntType = int
  LongType = long
  FloatType = float
  try:
      ComplexType = complex
  except NameError:
      pass
  
  StringType = str
  try:
      UnicodeType = unicode
      StringTypes = (StringType, UnicodeType)
  except NameError:
      StringTypes = (StringType,)
  
  BufferType = type(buffer(''))
  
  TupleType = tuple
  ListType = list
  DictType = DictionaryType = dict
  
  def _f(): pass
  FunctionType = type(_f)
  LambdaType = type(lambda: None)         # Same as FunctionType
  try:
      CodeType = type(_f.func_code)
  except RuntimeError:
      # Execution in restricted environment
      pass
  
  def g():
      yield 1
  GeneratorType = type(g())
  del g
  
  class _C:
      def _m(self): pass
  ClassType = type(_C)
  UnboundMethodType = type(_C._m)         # Same as MethodType
  _x = _C()
  InstanceType = type(_x)
  MethodType = type(_x._m)
  
  BuiltinFunctionType = type(len)
  BuiltinMethodType = type([].append)     # Same as BuiltinFunctionType
  
  ModuleType = type(sys)
  FileType = file
  XRangeType = type(xrange(0))
  
  try:
      raise TypeError
  except TypeError:
      try:
          tb = sys.exc_info()[2]
          TracebackType = type(tb)
          FrameType = type(tb.tb_frame)
      except AttributeError:
          # In the restricted environment, exc_info returns (None, None,
          # None) Then, tb.tb_frame gives an attribute error
          pass
      tb = None; del tb
  
  SliceType = type(slice(0))
  EllipsisType = type(Ellipsis)
  
  DictProxyType = type(TypeType.__dict__)
  
  del sys, _f, _C, _x                  # Not for export
  
new_contents: """Define names for all type symbols known in the standard interpreter.
  
  Types that are part of optional modules (e.g. array) are not listed.
  """
  import sys
  
  # Iterators in Python aren't a matter of type but of protocol.  A large
  # and changing number of builtin types implement *some* flavor of
  # iterator.  Don't check the type!  Use hasattr to check for both
  # "__iter__" and "next" attributes instead.
  
  NoneType = type(None)
  TypeType = type
  ObjectType = object
  
  IntType = int
  LongType = long
  FloatType = float
  BooleanType = bool
  try:
      ComplexType = complex
  except NameError:
      pass
  
  StringType = str
  try:
      UnicodeType = unicode
      StringTypes = (StringType, UnicodeType)
  except NameError:
      StringTypes = (StringType,)
  
  BufferType = type(buffer(''))
  
  TupleType = tuple
  ListType = list
  DictType = DictionaryType = dict
  
  def _f(): pass
  FunctionType = type(_f)
  LambdaType = type(lambda: None)         # Same as FunctionType
  try:
      CodeType = type(_f.func_code)
  except RuntimeError:
      # Execution in restricted environment
      pass
  
  def g():
      yield 1
  GeneratorType = type(g())
  del g
  
  class _C:
      def _m(self): pass
  ClassType = type(_C)
  UnboundMethodType = type(_C._m)         # Same as MethodType
  _x = _C()
  InstanceType = type(_x)
  MethodType = type(_x._m)
  
  BuiltinFunctionType = type(len)
  BuiltinMethodType = type([].append)     # Same as BuiltinFunctionType
  
  ModuleType = type(sys)
  FileType = file
  XRangeType = type(xrange(0))
  
  try:
      raise TypeError
  except TypeError:
      try:
          tb = sys.exc_info()[2]
          TracebackType = type(tb)
          FrameType = type(tb.tb_frame)
      except AttributeError:
          # In the restricted environment, exc_info returns (None, None,
          # None) Then, tb.tb_frame gives an attribute error
          pass
      tb = None; del tb
  
  SliceType = type(slice(0))
  EllipsisType = type(Ellipsis)
  
  DictProxyType = type(TypeType.__dict__)
  
  del sys, _f, _C, _x                  # Not for export
  
subject: add BooleanType