ElixirConf: ElixirConf 2023 - José Valim - The foundations of the Elixir type system
Comments welcome! View the elixirconf tag for more ElixirConf talks!
ElixirConf: ElixirConf 2023 - José Valim - The foundations of the Elixir type system
Comments welcome! View the elixirconf tag for more ElixirConf talks!
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