module T::Generic

def [](*types)

def [](*types)
  self
end

def has_attached_class!(variance=:invariant, &blk); end

def has_attached_class!(variance=:invariant, &blk); end

def type_member(variance=:invariant, &blk)

def type_member(variance=:invariant, &blk)
  T::Types::TypeMember.new(variance)
end

def type_template(variance=:invariant, &blk)

def type_template(variance=:invariant, &blk)
  T::Types::TypeTemplate.new(variance)
end