I often wrap newtypes in newtypes and then I want to access the basetype. Example:
@newtype case class Secret(value: String)
@newtype case class Password(value: Secret)
@newtype case class AdminPassword(value: Password)
val adminPassword: AdminPassword = ???
// Access the basetype
println(adminPassword.value.value.value)
Something like adminPassword.coerce[String] would be nice, or maybe even adminPassword.underlying. As Coercible is a typeclass, I think with the correct derivation it should be possible to get something like it.
I often wrap newtypes in newtypes and then I want to access the basetype. Example:
Something like
adminPassword.coerce[String]
would be nice, or maybe evenadminPassword.underlying
. AsCoercible
is a typeclass, I think with the correct derivation it should be possible to get something like it.Opinions?