arcando tipos primitivos com tipos fantasmas no Scala
No Scala, posso usar o conceito de tipos fantasmas (como descrito, por exemplo,Aqu) para marcar tipos e apagar essas informações em tempo de execução. Gostaria de saber se é possível marcar tipos primitivos com tipos fantasmas sem tê-los na caix
Um exemplo pode ser uma função que permite que um Int passe apenas se for primo. A assinatura pode ser semelhante à seguinte:
def filterPrime(i: Int): Option[Int with IsPrime]
A função retorna o valorSome(i)
E sei
é primo ouNone
outro
É possível implementar a ideia declarada no Scala sem boxar o número inteiro primitiv