There are plenty of things the compiler doesn't (/shouldn't/can't) enforce. It doesn't prevent you writing 1,000-line functions, but you shouldn't. It doesn't prevent you open-coding for
loops that replicate higher-order std lib functions like map
, but you shouldn't. And it doesn't stop you declaring all your methods and conformances inside the initial struct
definition. But you shouldn't.
While my disagreement with this pitch is just my personal opinion, the way the standard library organizes code is more than a personal preference. It is explicitly a style that the core team encourages, as stated in the acceptance rationale of SE-0169.