Use type annotations wherever automatic type inference fails (or produces unnecessarily complex results) and developers would otherwise be required to scan big chunks of code to manually infer a type.
Particularly dofile results should be type-annotated wherever possible.