Matrix._format_str should be passed a printer, not a function