I would like to point out too that [Nim distinguises between type casts and type conversions](https://nim-lang.org/docs/tut2.html#object-oriented-programming-type-conversions).
In the words of the Nim manual > Casts are done with the `cast` operator and force the compiler to interpret a bit pattern to be of another type > [Type conversions] preserve the abstract value, not necessarily the bit-pattern The distinction is important to remember, as a type cast in C is more similar to the Nim `cast` operator, while a type conversion in Nim is more of an annotation for the compiler to determine if the type conversion relationship is even possible and is useful for OOP.