course the other purpose of modules (which is what an imported file is called
in Nim). Typically you would put your type, and any proc that handles that proc
in the same module, and then you can import it and the user is sure they won't
be able to access something that would break the module if handled incorrectly.
In your example you could for example move the $ procedure into that module so
that you could echo tha
[url=[https://tutuapp.uno/]Tutuapp[/url](https://tutuapp.uno/\]Tutuapp\[/url)]
[url=[https://9apps.ooo/]9apps[/url](https://9apps.ooo/\]9apps\[/url)]
[url=[https://showbox.kim/]Showbox[/url](https://showbox.kim/\]Showbox\[/url)]
t type. Or if you want the user to be able to read these fields, but not write
them you could do template major*(v: Version): uint = v.major in your module
and then hide the major field in the Version object.