A protocol for unwrapping values from NewTypes.
All the types that implement this protocol.
Unwraps a value from a NewType.
@type t() :: term()
@spec unwrap(any()) :: any()