Suggestions:
-
Could the same name be used for wrapping and unwrapping?
i.e. init(wrappedValue: T) and var wrappedValue: T.
-
Or could there be an unlabelled initializer to wrap, and a no-parameter subscript to unwrap?
i.e. init(_: T) and subscript() -> T.