The code for the default Print method will apply the AfterEval method to r if there one, and replace r by the result. Then it applies BeforePrint method, if there is one, to r, and prints its result instead. The actual printing will be done with <<. It will then apply the appropriate AfterPrint method to r, which is normally used to provide auxiliary information to the user about the type of the result.
Methods for Print :