Listen "72: TypeCheck with Wiebe-Marten Wijnja"
Episode Synopsis
We talk with Wiebe-Marten Wijnja about his project TypeCheck that provides a new kind of runtime type checking for Elixir applications. The syntax builds on your existing spec types so it still works for dialyzer but adds additional compile time created checks. It also works for generating property based test data. This feature comes out in a new ability called "spectest". Like doctests, you can have automated checks that verify the function adheres to the spec! We also cover how TypeCheck allows writing type declarations for other libraries like Ecto and Plug. There are some interesting ways for people to contribute! A very interesting library!
Show Notes online - http://podcast.thinkingelixir.com/72 (http://podcast.thinkingelixir.com/72)
Elixir Community News
- https://twitter.com/erlang_org/status/1453018514617475074 (https://twitter.com/erlang_org/status/1453018514617475074) – Ericsson OTP Team announced the launch of the brand new Erlang Forums
- https://hello.erlangforums.com (https://hello.erlangforums.com) – New Erlang Forum
- https://github.com/elixir-lang/elixir/releases/tag/v1.13.0-rc.0 (https://github.com/elixir-lang/elixir/releases/tag/v1.13.0-rc.0) – Elixir 1.13 RC was released
- https://twitter.com/wojtekmach/status/1453671121820192770 (https://twitter.com/wojtekmach/status/1453671121820192770) – Ability to globally customize inspect.
- https://groups.google.com/g/elixir-lang-core/c/LYmkUopaWN4/m/SwBzRt2zBQAJ (https://groups.google.com/g/elixir-lang-core/c/LYmkUopaWN4/m/SwBzRt2zBQAJ) – Mailing list discussion
- https://github.com/elixir-lang/elixir/pull/11349 (https://github.com/elixir-lang/elixir/pull/11349) – PR discussion
- https://twitter.com/tylerayoung/status/1454780291374096384 (https://twitter.com/tylerayoung/status/1454780291374096384) – Tyler Young's comment thread about the process
- https://twitter.com/livebookdev/status/1455236497960013836 (https://twitter.com/livebookdev/status/1455236497960013836) – Livebook 0.3 released
- https://www.youtube.com/watch?v=4lNkiACemM0 (https://www.youtube.com/watch?v=4lNkiACemM0) – Jose Valim's video demonstrating new features
Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at [email protected] (mailto:[email protected])
Discussion Resources
- https://github.com/Qqwy/elixir-type_check (https://github.com/Qqwy/elixir-type_check) – TypeCheck GitHub repo
- https://hexdocs.pm/type_check/type-checking-and-spec-testing-with-typecheck.html (https://hexdocs.pm/type_check/type-checking-and-spec-testing-with-typecheck.html) – Introductory article
- https://elixirforum.com/t/typecheck-fast-and-flexible-runtime-type-checking-for-your-elixir-projects/32886 (https://elixirforum.com/t/typecheck-fast-and-flexible-runtime-type-checking-for-your-elixir-projects/32886) – Forum topic with many examples and updates
- https://hexdocs.pm/type_check/comparing-typecheck-and-norm.html (https://hexdocs.pm/type_check/comparing-typecheck-and-norm.html) – Comparison with Norm
- https://twitter.com/strzibnyj/status/1438393349644464130 (https://twitter.com/strzibnyj/status/1438393349644464130)
- https://hexdocs.pm/type_check/comparing-typecheck-and-elixir-typespecs.html (https://hexdocs.pm/type_check/comparing-typecheck-and-elixir-typespecs.html) – Feature-parity of TypeCheck with Elixir's builtin typespecs
- https://www.youtube.com/watch?v=6sNmJtoKDCo (https://www.youtube.com/watch?v=6sNmJtoKDCo) – Clarity - Saša Jurić - ElixirConf EU 2021
- https://racket-lang.org/ (https://racket-lang.org/)
Guest Information
- https://twitter.com/wiebemarten (https://twitter.com/wiebemarten) – on Twitter
- https://github.com/Qqwy/ (https://github.com/Qqwy/) – on Github
- https://wmcode.nl/ (https://wmcode.nl/) – Personal site
- https://resilia.nl/ (https://resilia.nl/) – Work site
Find us online
- Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir)
- Email the show - [email protected] (mailto:[email protected])
- Mark Ericksen - @brainlid (https://twitter.com/brainlid)
- David Bernheisel - @bernheisel (https://twitter.com/bernheisel)
- Cade Ward - @cadebward (https://twitter.com/cadebward)
Show Notes online - http://podcast.thinkingelixir.com/72 (http://podcast.thinkingelixir.com/72)
Elixir Community News
- https://twitter.com/erlang_org/status/1453018514617475074 (https://twitter.com/erlang_org/status/1453018514617475074) – Ericsson OTP Team announced the launch of the brand new Erlang Forums
- https://hello.erlangforums.com (https://hello.erlangforums.com) – New Erlang Forum
- https://github.com/elixir-lang/elixir/releases/tag/v1.13.0-rc.0 (https://github.com/elixir-lang/elixir/releases/tag/v1.13.0-rc.0) – Elixir 1.13 RC was released
- https://twitter.com/wojtekmach/status/1453671121820192770 (https://twitter.com/wojtekmach/status/1453671121820192770) – Ability to globally customize inspect.
- https://groups.google.com/g/elixir-lang-core/c/LYmkUopaWN4/m/SwBzRt2zBQAJ (https://groups.google.com/g/elixir-lang-core/c/LYmkUopaWN4/m/SwBzRt2zBQAJ) – Mailing list discussion
- https://github.com/elixir-lang/elixir/pull/11349 (https://github.com/elixir-lang/elixir/pull/11349) – PR discussion
- https://twitter.com/tylerayoung/status/1454780291374096384 (https://twitter.com/tylerayoung/status/1454780291374096384) – Tyler Young's comment thread about the process
- https://twitter.com/livebookdev/status/1455236497960013836 (https://twitter.com/livebookdev/status/1455236497960013836) – Livebook 0.3 released
- https://www.youtube.com/watch?v=4lNkiACemM0 (https://www.youtube.com/watch?v=4lNkiACemM0) – Jose Valim's video demonstrating new features
Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at [email protected] (mailto:[email protected])
Discussion Resources
- https://github.com/Qqwy/elixir-type_check (https://github.com/Qqwy/elixir-type_check) – TypeCheck GitHub repo
- https://hexdocs.pm/type_check/type-checking-and-spec-testing-with-typecheck.html (https://hexdocs.pm/type_check/type-checking-and-spec-testing-with-typecheck.html) – Introductory article
- https://elixirforum.com/t/typecheck-fast-and-flexible-runtime-type-checking-for-your-elixir-projects/32886 (https://elixirforum.com/t/typecheck-fast-and-flexible-runtime-type-checking-for-your-elixir-projects/32886) – Forum topic with many examples and updates
- https://hexdocs.pm/type_check/comparing-typecheck-and-norm.html (https://hexdocs.pm/type_check/comparing-typecheck-and-norm.html) – Comparison with Norm
- https://twitter.com/strzibnyj/status/1438393349644464130 (https://twitter.com/strzibnyj/status/1438393349644464130)
- https://hexdocs.pm/type_check/comparing-typecheck-and-elixir-typespecs.html (https://hexdocs.pm/type_check/comparing-typecheck-and-elixir-typespecs.html) – Feature-parity of TypeCheck with Elixir's builtin typespecs
- https://www.youtube.com/watch?v=6sNmJtoKDCo (https://www.youtube.com/watch?v=6sNmJtoKDCo) – Clarity - Saša Jurić - ElixirConf EU 2021
- https://racket-lang.org/ (https://racket-lang.org/)
Guest Information
- https://twitter.com/wiebemarten (https://twitter.com/wiebemarten) – on Twitter
- https://github.com/Qqwy/ (https://github.com/Qqwy/) – on Github
- https://wmcode.nl/ (https://wmcode.nl/) – Personal site
- https://resilia.nl/ (https://resilia.nl/) – Work site
Find us online
- Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir)
- Email the show - [email protected] (mailto:[email protected])
- Mark Ericksen - @brainlid (https://twitter.com/brainlid)
- David Bernheisel - @bernheisel (https://twitter.com/bernheisel)
- Cade Ward - @cadebward (https://twitter.com/cadebward)
More episodes of the podcast Thinking Elixir Podcast
283: Erlang Turns 27 and React at Risk
16/12/2025
282: Type Systems and View Transitions
09/12/2025
281: Planning for the Unexpected
02/12/2025
280: Dark Matter Developers
25/11/2025
279: Hot Code Upgrades and Hotter AI Takes
18/11/2025
278: WAL-ing Through Database Changes
11/11/2025
277: Searching Across the Hexiverse
04/11/2025
276: Elixir v1.19 Types and Speed
28/10/2025
275: From Slop to Success?
21/10/2025
274: Protocols, Permissions, and Performance
14/10/2025
ZARZA We are Zarza, the prestigious firm behind major projects in information technology.