Skip to content
HHackerTube.videoSurprise me

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

ElixirConf 2023 - José Valim - The foundations of the Elixir type system on HackerTube: recommended by 3 Hacker News commenters across 3 separate months, 2023–2026.

ElixirConf

talk · advanced · dated

Open on YouTube

José Valim's ElixirConf US 2023 closing keynote on the foundations of the Elixir type system, covering set-theoretic types and gradual typing with strong arrows.

Why Hacker News recommends it

HN recommends it as the best detailed explanation from the language's creator of how Elixir's new type system works and why.

people recommended it
3
separate months
3
strong recommendations
1
discussed on HN
2023–2026
“If you're into watching talks, this will be well worth your time.”
— gregors, Jun 2024, in “Elixir 1.17 released: set-theoretic types in patterns, durations, OTP 27”

What HN commenters said

8 Hacker News comments link this video. Each one links back to its thread.

gregorsJun 2024Strongly recommends

If you're into watching talks, this will be well worth your time. ElixirConf 2023 - José Valim - The foundations of the Elixir type system ▶ this video

in “Elixir 1.17 released: set-theoretic types in patterns, durations, OTP 27” · View on HN

H12Jan 2024Recommends

My understanding is "yes, but only type errors that violate guards and pattern matching". Jose's elixirconf keynote this year did a great job providing details on how how this new type system works: ▶ this video

in “Elixir is now a gradually typed language” · View on HN

whalesaladNov 2023Recommends

static typing is a means to an end. if you can achieve the same end without static typing, good right? that is the goal of spec. the creator of the language has a fantastic talk on this ▶ this video

in “Switching to Elixir” · View on HN

aeonfoxJun 2026Cites it

OP might be referring to Jose Valim's 2023 ElixirConf talk where he's explaining why Elixir should go down the path of types. He gives a lot more nuanced take than 'types are useless', which is more like 'types are less useful than people think in the context of Elixir development'. (Which makes sense because he's in the middle of implementing a type system for Elixir.) ▶ this video

in “Elixir v1.20 released: now a gradually typed language” · View on HN

mechanicumJun 2026Cites it

Short answer: “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”. Long answer, well, there are blog posts[0], the Design Principles of the Elixir Type System paper[1] and related presentations[2, 3, 4] that talk about it at length. Giuseppe Castagna’s site has many more related papers: [link] [0]: [link] [1]: [link] [2]: [link] [3]: [link] [4]: ▶ this video

in “Elixir v1.20 released: now a gradually typed language” · View on HN

_accoJul 2025Cites it

It doesn't matter as much as you think. I believe this is in part due to how assertive most Elixir code tends to be. [1] These assertions not only aid the LSP and can cause compiler warnings/errors, they also help LLMs just like types do. Still, every release now contains new type system features. Next up is full type inference. [2] After that will be typed structs. [1] José Valim giving his balanced view on type systems: ▶ this video [2] [link]

in “Why Elixir? Common misconceptions” · View on HN

Show 2 more comments
rapindMar 2025Cites it

I'd keep an eye on Roc [link] Also, Elixir is working on gradual types, which is something I would keep an eye on. [link] ▶ this video

in “Koto Programming Language” · View on HN

paweldudaSep 2023Cites it

Types in Elixir are on the roadmap [1] but I don't think there's concrete ETA For now you have typespecs and dialyzer that tries to infer types and detect incorrect assumptions in code but I found it cumbersome to work with. Testing in Elixir is first class so I prefer that for now. You get doctests (documentation that is also a runnable test), like in Python, which I find very useful when looking at some package source. [1] ▶ this video

in “Unpacking Elixir: Resilience” · View on HN

Topics & tags

Programming language designFunctional programmingelixirgradual typingset-theoretic typestype systemsjose valim