I just watched The Ultimate Conditional Syntax, which is about a new syntax for conditional expressions, that is being developed for the new functional programming language MLScript. According to the video “MLScript generalizes ML-style principal type inference to Boolean-algebraic subtyping with first-class union, intersection, negation, and literal types”. This reminded me of the ongoing research on developing set-theoretic types for Elixir.
For example, the following function has type
f: (0 | 1) -> ("A" | "B")
fun f(x) = if x is 0 then "A" 1 then "B"
The idea of the authors is to generalize if-then-else to subsume pattern matching. And I think this is also a point of contact with Elixir, which relies heavily on pattern matching.
Maybe this video can provide some food for thought for the future development of Elixir, or maybe it will inspire someone to write a macro. Anyway, I think it is worth sharing with the Elixir community.