I still don’t get it, you can do the same with an opaque type as far as I can tell:
trait NewType[Wrapped] {
opaque type Type = Wrapped
def apply(w: Wrapped): Type = w
extension (t: Type) {
def unwrap: Wrapped = t
}
}
I still don’t get it, you can do the same with an opaque type as far as I can tell:
trait NewType[Wrapped] {
opaque type Type = Wrapped
def apply(w: Wrapped): Type = w
extension (t: Type) {
def unwrap: Wrapped = t
}
}