1. Simplifies code such that portions cannot return errors
2. Improves reusability of components for future work
3. Reduces the number of tests needed
4. Highlights broken code earlier in the software development cycle, rather than amidst handling hot paths.
1. Simplifies code such that portions cannot return errors
2. Improves reusability of components for future work
3. Reduces the number of tests needed
4. Highlights broken code earlier in the software development cycle, rather than amidst handling hot paths.