when i write types, i like to put the properties and simpler subscripts and nested types in the body of the main declaration, and the functions in an
extension. however this doesn’t really work well with the synthesized
inits, because if i implement my own
init in an extension, it conflicts with the automatic one.
invalid redeclaration of synthesized memberwise 'init'...
but if i take it out, the synthesized
private due to some of the stored properties being
private, so this turns into an access control error.
error: '...' initializer is inaccessible due to 'private' protection level
why can’t the initializer in the extension just disable the
private synthesized initializer?