I have a question about nim's type system and I'd like to hear some other devs opinion about it: Ive been using both variant object types and object-oriented inheritance tree to express multiple possible structures for a single type and both approaches are very readable and understandable but I've noticed that people tend to prefer using variant types (as we can see with the NimNode type itself for example) over inheritance, but what are the advantages of it (besides speed maybe) ? because on the other hand inheritance has the advantage of letting you use each variant as its individual type thus allowing you to restrict your functions to only accept a specific variant improving type safety and readability