Since we are leaving Type classes public API I think we should document how they should works. Which methods they need to implement, which are the input/output of the methods, etc.