Iron: A Type-Safe Scala Library for Refined Types
The article introduces Iron, a library for refined types developed in Scala 3, and compares it to the refined library. Iron allows developers to express business requirements using the type system, eliminating the need for handwritten value checks. It provides a wide range of built-in constraints and also allows developers to create their own constraints easily. The article shows how to use Iron to model a domain and combine it with the Circe library for serialization and deserialization. Iron's simplicity and lack of runtime overhead make it a promising choice for developers. However, it is a younger project with limited third-party library support compared to refined. Overall, both Iron and refined are fun to use and extremely useful tools for type safety in Scala.