add some missing custom printers (to recursive-contract)
strengthen shortcut-prefix contract

(technically, strengthen the way it is written in the docs; it
was already being enforced that way)