Below content cherry-picked from this HN thread.
The basic idea here is that complex data structures are usually easy to understand, while complex code isn't. This is one of the few fundamental insights about programming that withstood the test of time.
Note that while this all is not necessarily about types, this is about documenting the data structures - and good type systems enable you to do so in an unambiguous and even machine-checkable way.
There's a famous quote in "The Mythical Man-Month" by Frederick Brooks (1975):
Show me your flowcharts and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won't usually need your flowcharts; they'll be obvious.
Similar quotes to the same effect have been made in the recent century as well.
2003: The same idea is also stated as one of the basic design rules in "The Art of Unix Programming" by Eric Raymond:
Rule of Representation: Fold knowledge into data, so program logic can be stupid and robust
2006: Another quite famous quote from the Git mailing list by Linus Torvalds:
Bad programmers worry about the code. Good programmers worry about data structures and their relationships