support arbitrary tuples on the C side
with help from a colleague