@Devlin-Mallory and I frequently run into silly errors where something like ranks M for a huge module M will take a long time only to print an error that ranks is an undefined symbol. Perhaps the error printing routine shouldn't try to print the content of modules, sheaves, complexes, etc?
Perhaps there should be a new method like errorPrint which can be used to determine how to print an object in the error.