module T::Generic

def [](*types)

def [](*types)
  self
end

def type_member(variance=:invariant, fixed: nil, lower: T.untyped, upper: BasicObject)

def type_member(variance=:invariant, fixed: nil, lower: T.untyped, upper: BasicObject)
  T::Types::TypeMember.new(variance) # rubocop:disable PrisonGuard/UseOpusTypesShortcut
end

def type_template(variance=:invariant, fixed: nil, lower: T.untyped, upper: BasicObject)

def type_template(variance=:invariant, fixed: nil, lower: T.untyped, upper: BasicObject)
  T::Types::TypeTemplate.new(variance) # rubocop:disable PrisonGuard/UseOpusTypesShortcut
end