We don't really check for arity here, so we could crash with a badly formed tuple of size 1 or zero. It would be nice to check.