clarify that flatten behaves non-deterministically