module T::Generic

def [](*types)

def [](*types)
  self
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