This references says printable<%> should be implemented, and that it seems to be a wrapper around prop:custom-write.
https://docs.racket-lang.org/reference/objectprinting.html
But the docs for prop:custom-write say it's deprecated in favor of gen:custom-write.