integrated latest shapeless IsTuple/HasProductGeneric