proc myGenericProc[T: object|tuple|int|ptr|ref|distinct](x: T): string = result = $x type TMyObj = tuple[x, y: int] var x: TMyObj assert myGenericProc(232) == "232" assert myGenericProc(x) == "(x: 0, y: 0)"