Remaining: * replace `string_of_XYZ` functions with `print_XYZ` * remove "general confusion" * add locations to source code