`print` vs two-argument `show`/`repr` vs three-argument `show`/`repr` with `MIME"text/plain"`

I don’t think you should be using :compact=>false with 2-argument show as a synonym for 3-argument/multi-line show.

With or without :compact, the 2-argument show should generally be a repr format that corresponds to Julia input. :compact is more about things like the number of digits to print. Your implementation, in contrast, mean that things like println(io, "x = ", x, ", y = ", y) will give a multi-line output for x::MyType if the :compact=>false flag is set on io.

Moreover, :compact=>false should be the default for both 2-argument and 3-argument show.

This is documented with IOContext (and is linked from my new summary in the manual above).