Thinking Elixir Podcast
295: Is Your Type System Leaking?

295: Is Your Type System Leaking?

Thinking Elixir Podcast

March 10, 202627:03

About this episode

<p>News includes José Valim publishing a deep technical post on Elixir's type system shift from DNFs to Lazy BDDs with eager literal intersections — cutting worst-case type checking from 10 seconds to 25ms — alongside a more approachable Dashbit post on type systems as leaky abstractions, Zach Daniel's new usage_rules feature for shipping versioned AI skills inside Hex packages, Oban Pro teasing a major Workflow + Web UI overhaul with graph views and progress tracking, MDEx v0.11.6 landing with a new <code>:codefence_renderers</code> option, Livebook Desktop adding Linux support, Flame On hitting v1.0.0 after four years, a new Gleam static site generator called Blogatto, a native Elixir Apache Spark Connect client with Livebook integration, and more!</p> <p>Show Notes online - <a href="http://podcast.thinkingelixir.com/295" rel="nofollow noopener">http://podcast.thinkingelixir.com/295</a></p> <p><strong>Elixir Community News</strong></p> <ul> <li><a href="https://paraxial.io/?utm_source=thinkingelixir&amp;utm_campaign=thinkingelixir-oct2025" rel="nofollow noopener">https://paraxial.io/</a> – Paraxial.io is sponsoring today's show! Sign up for a free trial of Paraxial.io today and mention Thinking Elixir when you schedule a demo for a special offer.</li> <li><a href="https://erlef.org/?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://erlef.org/</a> – David encourages companies that use Elixir to sponsor the Erlang Ecosystem Foundation, emphasizing it's a community responsibility and any amount helps.</li> <li><a href="https://nitter.net/josevalim/status/2026957172807025095?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://nitter.net/josevalim/status/2026957172807025095</a> – José Valim announces a new technical blog post on elixir-lang.org about set-theoretic type system internals.</li> <li><a href="https://elixir-lang.org/blog/2026/02/26/eager-literal-intersections/?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://elixir-lang.org/blog/2026/02/26/eager-literal-intersections/</a> – José Valim's deep-dive post on switching from DNFs to Lazy BDDs and adding eager literal intersections, reducing a worst-case type check from 10s to 25ms in Elixir v1.20.</li> <li><a href="https://nitter.net/josevalim/status/2028820597761831058?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://nitter.net/josevalim/status/2028820597761831058</a> – José Valim announces a more approachable blog post on type systems as leaky abstractions.</li> <li><a href="https://dashbit.co/blog/type-systems-are-leaky-abstractions-map-take?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://dashbit.co/blog/type-systems-are-leaky-abstractions-map-take</a> – Dashbit post by José Valim arguing with concrete examples that type systems can be leaky abstractions that resist refactoring, using Map.take!/2 as a case study.</li> <li><a href="https://x.com/zachsdaniel1/status/2027078981451690355?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://x.com/zachsdaniel1/status/2027078981451690355</a> – Zach Daniel announces a new usage_rules feature that supports copying skills from packages, allowing package authors to ship and version AI skills for projects.</li> <li><a href="https://github.com/ash-project/usage_rules?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://github.com/ash-project/usage_rules</a> – The usage_rules GitHub repo for the Ash project's AI coding rules and skills feature.</li> <li><a href="https://bsky.app/profile/oban.pro/post/3mg5yd4lul22a?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://bsky.app/profile/oban.pro/post/3mg5yd4lul22a</a> – Sorentwo teases upcoming Oban Pro Workflow + Web improvements, including a new Workflows search page with progress bars, stats, filters, and a graph view of workflow nodes.</li> <li><a href="https://github.com/leandrocp/mdex/releases/tag/v0.11.6?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://github.com/leandrocp/mdex/releases/tag/v0.11.6</a> – MDEx v0.11.6 release notes, adding :codefence_renderers option and fixes to the syntax highlighter and streaming parser.</li> <li><a href="https://nitter.net/leandrocesquini/status/2026671063820615755?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://nitter.net/leandrocesquini/status/2026671063820615755</a> – Leandro Cesquini announces the MDEx v0.11.6 release on social media.</li> <li><a href="https://hexdocs.pm/mdex/codefence_renderers.html?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://hexdocs.pm/mdex/codefence_renderers.html</a> – HexDocs page for MDEx's new codefence_renderers feature, enabling custom code fences like alert, Pikchr, chart, csv, and more.</li> <li><a href="https://github.com/leandrocp/mdex?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://github.com/leandrocp/mdex</a> – The MDEx GitHub repository for the Elixir Markdown parsing and rendering library.</li> <li><a href="https://github.com/dbernheisel/hex-cmp?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://github.com/dbernheisel/hex-cmp</a> – David's new Neovim plugin that autocompletes hex.pm packages and versions in mix.exs files using blink.cmp and Treesitter, with lightweight LSP hover docs.</li> <li><a href="https://nitter.net/1stavenger/status/2027943235096641839?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://nitter.net/1stavenger/status/2027943235096641839</a> – Mike Binns announces the v1.0.0 release of Flame On, a flame chart plugin for Phoenix Live Dashboard, after 4+ years.</li> <li><a href="https://blogat.to/?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://blogat.to/</a> – Blogatto is a new Gleam static site generator framework built on Lustre and Markdown, generating blogs, RSS feeds, sitemaps, and more from a single config.</li> <li><a href="https://nitter.net/lukaszsamson/status/2028268416939786430?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://nitter.net/lukaszsamson/status/2028268416939786430</a> – Łukasz Samson announces spark_ex, a native Elixir Apache Spark Connect client with Livebook integration.</li> <li><a href="https://github.com/lukaszsamson/spark_ex/blob/main/notebooks/spark_ex_demo.livemd?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://github.com/lukaszsamson/spark_ex/blob/main/notebooks/spark_ex_demo.livemd</a> – Demo Livebook notebook for spark_ex to quickly start experimenting with Apache Spark from Elixir.</li> <li><a href="https://spark.apache.org/?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://spark.apache.org/</a> – Apache Spark™ official site — a multi-language engine for data engineering, data science, and machine learning on single-node or cluster environments.</li> <li><a href="https://bsky.app/profile/hugobarauna.com/post/3mg6djqvhzc2w?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://bsky.app/profile/hugobarauna.com/post/3mg6djqvhzc2w</a> – Hugo Baraúna announces that Livebook Desktop now supports Linux, powered by the same Tauri-based cross-platform packaging work reported last week.</li> <li><a href="https://bsky.app/profile/peregrine.bsky.social/post/3mg77yqlf7k2b?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://bsky.app/profile/peregrine.bsky.social/post/3mg77yqlf7k2b</a> – Announcement that Easel can now render to the terminal using rasterization via Easel.WX, ASCII glyph masks, and the termite library.</li> <li><a href="https://hexdocs.pm/easel/readme.html#terminal-backend-experimental?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://hexdocs.pm/easel/readme.html#terminal-backend-experimental</a> – HexDocs page for Easel's experimental terminal backend, detailing how it rasterizes and renders frames to a terminal session.</li> <li><a href="https://nitter.net/FrancescoC/status/2027699563474173983?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://nitter.net/FrancescoC/status/2027699563474173983</a> – Francesco Cesarini announces the new "BEAM There, Done That" podcast co-hosted with Alan Wyma.</li> <li><a href="https://open.spotify.com/episode/4D3ZdxRYlhtImwkjaqgRmS?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://open.spotify.com/episode/4D3ZdxRYlhtImwkjaqgRmS</a> – First episode of "BEAM There, Done That" on Spotify, featuring Andrea Leopardi on Concurrency, OTP, and the Evolution of the BEAM.</li> <li><a href="https://podcasts.apple.com/us/podcast/beam-there-done-that/id1880642413?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://podcasts.apple.com/us/podcast/beam-there-done-that/id1880642413</a> – 'BEAM There, Done That' podcast on Apple Podcasts, launched by Francesco Cesarini and Alan Wyma.</li> </ul> <p>Do you have some Elixir news to share? Tell us at <a href="https://twitter.com/ThinkingElixir" rel="nofollow noopener">@ThinkingElixir</a> or email at <a href="mailto:show@thinkingelixir.com" rel="nofollow noopener">show@thinkingelixir.com</a></p> <p><strong>Find us online</strong></p> <ul> <li>Message the show - <a href="https://bsky.app/profile/thinkingelixir.com" rel="nofollow noopener">Bluesky</a></li> <li>Message the show - <a href="https://x.com/ThinkingElixir" rel="nofollow noopener">X</a></li> <li>Message the show on Fediverse - <a href="https://genserver.social/ThinkingElixir" rel="nofollow noopener">@ThinkingElixir@genserver.social</a></li> <li>Email the show - <a href="mailto:show@thinkingelixir.com" rel="nofollow noopener">show@thinkingelixir.com</a></li> <li>Mark Ericksen on X - <a href="https://x.com/brainlid" rel="nofollow noopener">@brainlid</a></li> <li>Mark Ericksen on Bluesky - <a href="https://bsky.app/profile/brainlid.bsky.social" rel="nofollow noopener">@brainlid.bsky.social</a></li> <li>Mark Ericksen on Fediverse - <a href="https://genserver.social/brainlid" rel="nofollow noopener">@brainlid@genserver.social</a></li> <li>David Bernheisel on Bluesky - <a href="https://bsky.app/profile/david.bernheisel.com" rel="nofollow noopener">@david.bernheisel.com</a></li> <li>David Bernheisel on Fediverse - <a href="https://genserver.social/dbern" rel="nofollow noopener">@dbern@genserver.social</a></li> </ul><p>Sponsored By:</p><ul><li><a rel="nofollow" href="https://paraxial.io/?utm_source=thinkingelixir&amp;utm_campaign=thinkingelixir-oct2025">Paraxial.io</a>: <a rel="nofollow" href="https://paraxial.io/?utm_source=thinkingelixir&amp;utm_campaign=thinkingelixir-oct2025">Paraxial.io is sponsoring today's show! Sign up for a free trial of Paraxial.io today and mention Thinking Elixir when you schedule a demo for a special offer. </a></li></ul>