class Sorbet::Private::Serialize

def constant(const, value)

def constant(const, value)
  if KEYWORDS.include?(const.to_sym)
    return "# Illegal constant name: #{const}"
  end
  if defined?(T::Types::TypeMember) && Sorbet::Private::RealStdlib.real_is_a?(value, T::Types::TypeMember)
    value.variance == :invariant ? "  #{const} = type_member" : "  #{const} = type_member(#{value.variance.inspect})"
  elsif defined?(T::Types::TypeTemplate) && Sorbet::Private::RealStdlib.real_is_a?(value, T::Types::TypeTemplate)
    value.variance == :invariant ? "  #{const} = type_template" : "  #{const} = type_template(#{value.variance.inspect})"
  else
    "  #{const} = ::T.let(nil, ::T.untyped)"
  end
end