If you use an extension to add an initializer to a value type that provides default values for all of its stored properties and does not define any custom initializers, you can call the default initializer and memberwise initializer for that value type from within your extension’s initializer.
This would not be the case if you had written the initializer as part of the value type’s original implementation, as described in Initializer Delegation for Value Types.