HOW TYPES MAKE HARD PROBLEMS EASY
Type-driven development is the practice of defining types upfront, making sure of type consistency across the application, and making illegal states unrepresentable. This approach leads to slower short-term output, but leads to easier, more reliable coding in the long run. A side bonus is that it also comes with type-driven autocomplete and instant error detection.