code: private function getAbstractionDetails(Event $abs)
      {
          $reflector = $abs['reflector'];
          $abs['phpDoc'] = $this->phpDoc->getParsed($reflector);
          $traversed = false;
          if ($abs['debugMethod'] === 'table' && \count($abs['hist']) < 2) {
              // this is either rows (traversable), or a row (traversable)
              $obj = $abs->getSubject();
              if ($obj instanceof \Traversable && !$abs['traverseValues']) {
                  $traversed = true;
                  $abs['hist'][] = $obj;
                  foreach ($obj as $k => $v) {
                      $abs['traverseValues'][$k] = $this->abstracter->needsAbstraction($v)
                          ? $this->abstracter->getAbstraction($v, $abs['debugMethod'], $abs['hist'])
                          : $v;
                  }
              }
          }
          if (!$traversed) {
              $this->addConstants($abs);
              while ($reflector = $reflector->getParentClass()) {
                  $abs['extends'][] = $reflector->getName();
              }
              $this->addProperties($abs);
              $this->addMethods($abs);
          }
      }
docs: Populate constants, extends, methods, phpDoc, properties, etc
  
  @param Event $abs Abstraction event object
  
  @return void