Agreed on keeping the interface consistent. Removing the public `toc` reader is a good idea. 

If we remove `@toc`, I think we can remove `append_toc`.