This is a bit in flux. Historically, you would override `show(io::IO, x::X)` (print calls show by default). This still works.
You can implement more flexibility by overwriting writemime(io::IO, ::MIME"foo/bar", x::X). e.g. for text output you override it for text/plain (note that show calls currently writemime text/plain by default), and you can also implement e.g. text/html output or image/png output for rich display in something like IJulia. However, this is probably going to be re-organized somewhat in 0.5; see https://github.com/JuliaLang/julia/issues/14052 .... and it may be that in 0.5 the right thing to do will be to override print(io::IO, x::X), at least for plain-text output. For now, I would override show for plain-text output and writemime for everything else.
