This document provides an overview of Elixir's type system and static type checking tools. It discusses why types sometimes have a bad reputation, describes Elixir's weak dynamic typing, and covers typespecs, Dialyxr static analysis, defining custom types like structs, and parametric polymorphism. The presentation aims to demonstrate how Elixir's types can help structure code and catch bugs without boilerplate or losing expressiveness.