Is there a way to use varadic arguments to recurse a type? - Theo's Typesafe Cult