Hi, as far as I can tell, using newtypes together with phantom types isn't supported at the moment, i.e. essentially
case class Identifier[T](value: String)
but as a newtype instead of as a case class.
The straightforward thing to try would be
type Identifier[T] = Identifier.Type
object Identifier extends NewtypeWrapped[String]
However, this doesn't provide any type safety, since for any A and B, Identifier[A] and Identifier[B] are the same type.
I'm not sure what the right design here would be, but I think it would be useful to have - assuming I'm not missing an existing way to do it.
Cheers!
Hi, as far as I can tell, using newtypes together with phantom types isn't supported at the moment, i.e. essentially
but as a newtype instead of as a case class.
The straightforward thing to try would be
However, this doesn't provide any type safety, since for any
AandB,Identifier[A]andIdentifier[B]are the same type.I'm not sure what the right design here would be, but I think it would be useful to have - assuming I'm not missing an existing way to do it.
Cheers!