For consistency and simplicity, I prefer storing type info everywhere even if it's not necessary rather than storing it only in some places and hoping we didn't forget somewhere important. For example, a convoluted //\\ expression would fail to typecheck because types weren't kept around when normalizing //\\. Now types are everywhere, and I believe this makes the mental model of Value simpler.
For consistency and simplicity, I prefer storing type info everywhere even if it's not necessary rather than storing it only in some places and hoping we didn't forget somewhere important. For example, a convoluted
//\\
expression would fail to typecheck because types weren't kept around when normalizing//\\
. Now types are everywhere, and I believe this makes the mental model ofValue
simpler.