Shower thought: Printing runtime values is far more useful for product types than sum types.
For a struct it's useful to see all the fields, but for a nullable int it's less useful to see 123.
miniblog.
Related Posts
I've now worked on several systems where the JSON was so big that avoiding pretty-printing was a performance win!
I really like interpreters that allow you to inspect values, such as the JS console in a browser or Common Lisp with sly.
Otherwise you end up repeatedly pretty printing values. It's unnecessary.
Reporting a type error is fairly straightforward: making a good suggestion of how to fix it is much harder. I was really impressed with rustc's handling of Path printing here.
