Improve compile.protocols docs and make it public