> and it is much harder to understand Not universally. I'm not good in Elixier and not good in Nim. And yet I understand the Nim version much better, due to the indentation.
In the Elixier example all looks linear, but actually there is some kind of hidden "backtracking" happening due to to `{a, b} <- intersection(dn, dk),` and `nr == ar && kr == br do` and it looks entirely unclear to me why that would be the case --- and what this Elixier code is actually supposed to do.