For example, you might want a table like <country, account, agent, agent-is-active> with restrictions like the agent is located in the country, and whether an agent is active is account-specific. So it doesn't compress nicely into countries.map().map().map(), unless you either make a record type for each intermediate result so you can refer back to the country later in the computation, or one big record type where each field's validity depends on the current level of nesting. You can alternatively use for-loops if you're willing to nest a bunch of for-loops.