public function nonArrayTypes() : UnionType { return new UnionType($this->type_set->filter(function (Type $type) : bool { return !$type->isGenericArray() && $type !== ArrayType::instance(); })); }