Elixir v1.20 released: now a gradually typed language

101 points by munksgaard


gasche

This post is an occasion to advertise for long-term public-funded research. Some of the people doing the hard thinking behind this work are my colleagues (we work in the same building) in a computer science research lab in Paris (in particular Guillaume Duboc, Guiseppe Castagna). The theoretical foundations for this nice type system for a dynamic language, "set-theoretic typing", are in the works since the early 2000s; they were originally targeted at providing rich types to XML documents and program manipulating them, and it is sort of a coincidence that they are also rather good at providing principled yet effective type systems for dynamic languages.

We benefit from this work, collectively, thanks to the bright people working in public service, the academic values of sharing our work as widely as possible (decades of research, all of this accessible for free completely in the open, with open source software implementations, etc.), and the wisdom of some countries to direct some taxpayer money to long-term research.

lpil

Congratulations Elixir team!

ThePaulMcBride

Damn, Elixir is such a nice language.

moltonel

Very exciting evolution, looking forward to trying it out.

def example(x) when not is_map_key(x, :foo) And the code above infers x is a map that does not have the :foo key, which has the type: %{..., foo: not_set()}.

Why does it infer a map ? To me, an integer for example would also satisfy not is_map_key(x, :foo) ?