* ref \--- there is no such a thing. Reference always points at an entity of a specific type. * auto \--- it's not a type per se, it can just appear in several contexts a type may appear. * object \--- it's a kind of a type (as in: "this is an object type"), not type per se * any \--- well, there is Any in [typeinfo](https://nim-lang.org/docs/typeinfo.html), but I don't know if it's what you'd expect
What you can use: * any \--- as already mentioned * ptr \--- just raw pointer, you'd need some additional discriminant (or just know, e.x. by some pattern) * object variants --- similar to ptr+discriminant approach, but safer and handier (sadly, it has some disadvantages of its own, e.x. not being able to register a additional types in other files)