docs: def deref_const(self, index):
          """
          returns the dereferenced value from the const pool. For simple
          types, this will be a single value indicating the constant.
          For more complex types, such as fieldref, methodref, etc, this
          will return a tuple.
          """
  
          if not index:
              raise IndexError("Requested const 0")
  
          t, v = self.consts[index]
  
          if t in (CONST_Utf8, CONST_Integer, CONST_Float,
                   CONST_Long, CONST_Double):
              return v
  
          elif t in (CONST_Class, CONST_String, CONST_MethodType):
              return self.deref_const(v)
  
          elif t in (CONST_Fieldref, CONST_Methodref,
                     CONST_InterfaceMethodref, CONST_NameAndType,
                     CONST_ModuleId):
              return tuple(self.deref_const(i) for i in v)
  
          else:
              raise Unimplemented("Unknown constant pool type %r" % t)