Types as assertions | Hugonweb Annotated Link Bibliography
https://jerf.org/iri/post/2025/fp_lessons_types_as_assertions/
Using custom types wherever there is some concept of validity can help make a codebase free from checking validity everywhere. It only must be done in the constructor and errors handled by the caller of the constructor.
So look through a codebase for functions that take string, int, and float!