Nim is documented with itself, and documentation is nice. You do not need to annotate the types of the arguments because it has static typing, and you can see the types and argument names on the documentation and code, the returns are documented the same way as the arguments, typeless arguments and returns are not supported, for the examples it has `runnableExamples` that keeps the documentation in sync with the code.
But feel free to contribute improvements on the documentation and docgen.
