Conversão implícita da opção Scala - má prática ou recurso ausente?
Eu representei meu modelo de dados como classes de caso, digitando valores que podem ser nulos como Option.
case class Document(id: Long, title: String, subtitle: Option[String])
Agora eu tento instanciar a classe de caso:
Document(123, "The Title", "Subtitle") // Doesn't work
Mas NOPE! Isso não funciona, eu tenho que envolver o valor opcional em alguns.
Document(123, "The Title", Some("Subtitle")) // Works
Scala é muito inteligente em relação aos tipos em geral, mas por que não é evidente que um literal codificado ou (qualquer string) seja diferente de null / None?
Consegui consertar isso e tornar o Scala "mais inteligente" adicionando essa conversão implícita
implicit def autoSome[T](any:T) = Some(any)
Document(123, "The Title", "Subtitle") // Now it works!
Pergunta: Eu sou o único que o idioma deve fornecer conversão implícita T -> Alguns (T) fora da caixa? Ou há algumas dicas que não estou ciente de ter implicações tão amplas em todos os lugares por padrão?