Not completely sure what you're asking, more detail or example ( pseudo) code would help but just in case I understand:
Yes, generic varargs are possible, and yes you can type specialise: import sequtils proc trs[T](args:varargs[T]):seq[T] = when T is int: args.mapIt(it*2) else: args.toSeq() echo trs(3,4,5) # @[6,8,10] echo trs('a','b','c') #['a','b','c'] Run