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

questionAnswers(2)

yourAnswerToTheQuestion