This document discusses using domain modeling with types in Python using the static type checker Mypy. It motivates the use of types for domain-driven design and functional programming concepts. It then provides examples of building blocks for Mypy's type system algebra, including simple values with new types, combinations of values, modeling choices with unions, type functions, classes, generics, and putting the concepts together in a workflow. It also discusses limitations of Mypy and resources for further learning. The overall goal is to leave the reader inspired to learn more about applying type systems to domain modeling.