public function isArrayLike() : bool { $array_access_type = Type::make('\\', 'ArrayAccess', []); return $this === ArrayType::instance() || $this->isGenericArray() || $this === $array_access_type; }