Маркировка примитивных типов фантомными типами в Scala

В Scala я могу использовать концепцию фантомных типов (как описано, например, здесь ) для маркировки типов и удаления этой информации во время выполнения . Интересно, можно ли помечать примитивные типы фантомными типами, не помещая их в коробку.

Примером может быть функция, которая позволяет Int только проходить, если это простое число. Подпись может выглядеть примерно так:

def filterPrime(i: Int): Option[Int with IsPrime]

Функция возвращает значение Some (i) , если i является простым числом или None иначе.

Можно ли реализовать заявленную идею в Scala без упаковки примитивного целого числа?

5
задан ziggystar 15 June 2011 в 13:43
поделиться