Core concept
opaque type Email = String
object Email:
def apply(s: String): Email = sAdvertisement
How it works
Only in Scala 3. Companion object for smart constructors.
Advertisement
Trade-offs + gotchas
Type-safe wrappers. Newtype idiom.