extract type information from generic constructor to support tuples