Python has no control over visibility, all fields in a class are visible by default.
**The leading underscore convention is a social workaround to a missing technical feature.** In Nim this is not a problem, and even less so because it's a static language so visibility issues are resolved at compile-time and not in the middle of a multiple-hours run. That said, if leading underscore are allowed, I would rather have that they denote mutability instead of visibility which in my opinion is much more important for code correctness. i.e. currently we have the `shuffle` (in-place, mutable), `shuffled` (out-of-place), `reverse`-`reversed` convention but that doesn't really work for example for 1/x as it would be `reciprocal`-`reciprocaled` (???)
