To reply to Sendell's question: The constness in Nim is not the property of the type, it is property of the variable/argument. It is good reason to keep things this way. It allows to stay away from C++ problems.
For example, in C++ you can find that std::vector<const double *> and std:vector<double *> are completely incompatible types which is much bigger problem.
