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.
