ElixirConf 2023 - José Valim - The foundations of the Elixir type system

ElixirConf: ElixirConf 2023 - José Valim - The foundations of the Elixir type system

Comments welcome! View the elixirconf tag for more ElixirConf talks!

8 Likes

Looks great!

I’m curious about strong arrows. Around minute 53 we hear that strong arrows are transitive, so subtract is a strong arrow since negate is a strong arrow. But the written type of subtract is slightly weaker than it could be. The actual type of subtract is not integer(), integer() -> integer() but (integer() or float()), integer() -> (integer() or float()). I suppose subtract will thus not be considered strong until we add a guard on the first parameter?

José wrote a blog post with an erratum under the “Introducing strong arrows” section: Strong arrows: a new approach to gradual typing - The Elixir programming language

3 Likes