Hi folks, I was thinking about getting back into Nim, and I was hoping someone 
could clarify the state of type checking in Nim for me. My understanding is 
that Nim does less compile time type checking than many other statically typed 
languages. Notably:

  1. When you define a generic function with type A, you can do anything you 
want with A without the compiler complaining. For example, you could add two 
values of type A together, and the code will compile just fine, but you will 
get a runtime exception if you pass the function a value whose type can't be 
added.
  2. Concepts seem like a cool enhancement of generics that could potentially 
provide interfaces or even Haskell-style type classes, but type checking a 
value for being consistent with a concept is done entirely at runtime.



Is that correct, or am I missing something? I know Nim's powerful macro system 
can potentially fill in features absent in the language. And I've heard that 
there are a couple libraries out there providing something like type classes, 
but it looked like using them right now might be a bit cumbersome.

Thanks for the info.

Reply via email to