I'm excited about the type system so far, but I'm especially excited to hear about what else the type system is going to enable in the future. I remember José describing this as a "gradual gradual type system," where the gradual type system is going to be gradually added in stages, with this being the first stage. Any cool new type-system-related stuff coming up in the next few stages? I'm especially hoping for newly…
Doesn't gradual type system mean something else here? As in developers being able to iteratively add types while leaving untyped parts for later? At least this is how Ruby's Sorbet describes it
Elixir 1.17 released: set-theoretic types in patterns, durations, OTP 27
11–20 of 170 posts
Re: Elixir 1.17 released: set-theoretic types in patterns, durations, OTP 27
#12Does anyone know what they mean by "set-theoretic types"? I'm a PL nerd, but I've never heard this term before.
https://elixir-lang.org/blog/2022/10/05/my-future-with-elixi...
Re: Elixir 1.17 released: set-theoretic types in patterns, durations, OTP 27
#13Does anyone know what they mean by "set-theoretic types"? I'm a PL nerd, but I've never heard this term before.
Re: Elixir 1.17 released: set-theoretic types in patterns, durations, OTP 27
#14Does anyone know what they mean by "set-theoretic types"? I'm a PL nerd, but I've never heard this term before.
> We present a gradual type system for Elixir, based on the framework of semantic subtyping ... [which] provides a type system centered on the use of set-theoretic types (unions, intersections, negations) that satisfy the commutativity and distributivity properties of the corresponding set-theoretic operations. The system is a polymorphic type system with local type inference, that is, functions are explicitly annotated with types that may contain type variables, but their applications do not require explicit instantiations: the system deduces the right instantiations of every type variable. It also features precise typing of pattern matching combined with type narrowing: the types of the capture variables of the pattern and of some variables of the matched expression are refined in the branches to take into account the results of pattern matching.
[0]: https://www.irif.fr/_media/users/gduboc/elixir-types.pdf
Re: Elixir 1.17 released: set-theoretic types in patterns, durations, OTP 27
#15If `foo` returns `nil`, accessing `bar` won't raise.
Re: Elixir 1.17 released: set-theoretic types in patterns, durations, OTP 27
#16Does anyone know what they mean by "set-theoretic types"? I'm a PL nerd, but I've never heard this term before.
ElixirConf 2023 - José Valim - The foundations of the Elixir type system
Re: Elixir 1.17 released: set-theoretic types in patterns, durations, OTP 27
#17I've never been more excited about a release. I've been watching commits to both Elixir and OTP for awhile now and I feel Elixir/Erlang has really picked up steam.
Thanks to everyone involved for making my life easier!
Re: Elixir 1.17 released: set-theoretic types in patterns, durations, OTP 27
#18Does anyone know what they mean by "set-theoretic types"? I'm a PL nerd, but I've never heard this term before.
From the original paper[0]: > We present a gradual type system for Elixir, based on the framework of semantic subtyping ... [which] provides a type system centered on the use of set-theoretic types (unions, intersections, negations) that satisfy the commutativity and distributivity properties of the corresponding set-theoretic operations. The system is a polymorphic type system with local type inference, that is, fun…
Re: Elixir 1.17 released: set-theoretic types in patterns, durations, OTP 27
#19Re: Elixir 1.17 released: set-theoretic types in patterns, durations, OTP 27
#20How does this compare to Gleam (strong) typing? https://gleam.run