Although it's unlikely to happen, I think this would silently (well, the unittest would catch it) break if a new, potentially private field is added to `Tuple` - I think it'd be much better to use `expand` instead of relying on `tup.tupleof` being the same as `tup.expand`.