code: public function map(callable $callable)
      {
          $items = [];
          $type = null;
  
          foreach ($this->items as $item) {
               $result = $callable($item);
  
              if (null === $type) {
                  $type =  gettype($result);
  
                  if ($type === 'object') {
                      $type = get_class($result);
                  }
              }
  
              $items[] = $result;
          }
  
          if (null === $type) {
              $type = $this->type;
          }
  
          $col = new static ($type);
          $col->setItemsFromTrustedSource($items);
  
          return $col;
      }
docs: {@inheritdoc}