Asking in the forum is not an issue, but what miran said is that he feels like you might be trying to solve your issue at a low level while we could solve the actual bigger problem. (correct me if I'm wrong @miran).
1\. Auto and Any type for input params are usually not needed, using a generic T is recommended instead. That also makes documentation much more clear. 2\. Proc resolve their type at compile-time, there is no runtime types for proc, you need to use methods for that. Instead you can use what @demotomohiro proposed or : proc foo[T](a: T) = when a is int: doInt() elif float: doFloat() else: doElse() Run 3\. For runtime types and containers of heterogeneous types (which is the bigger problem) we actually covered it in your other thread ["Is there an untyped list"](https://forum.nim-lang.org/t/4233).