PS: there's another point being made on Reddit about cond's right-shift problem: https://www.reddit.com/r/ProgrammingLanguages/comments/1g127...
The limitations of Elixir syntax means it would need to be something more like:
ucs do
expensive() =>
and cheap1() -> "branch 1",
and cheap2() -> "branch 2",
cheap3() -> "branch 3"
end
There are other ways around it, but it could be fun to try to build a macro in Elixir for the UCS.