<div dir="auto"><div><div class="gmail_quote"><div dir="ltr">On Thu, Sep 27, 2018, 9:25 PM Marko Ristin-Kaufmann <<a href="mailto:marko.ristin@gmail.com">marko.ristin@gmail.com</a>> wrote:</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Try to question whether the contracts I wrote are so obvious to everybody even if they are obvious to you and keep in mind that the user does not look into the implementation. </div></div></div></div></div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">I had missed this comment, but this seems to be the biggest disconnect, or talking past each other.</div><div dir="auto"><br></div><div dir="auto">I'm a user of many libraries. I USUALLY look at the implementation when in doubt about a function. If contracts are meant only for users who don't look at code, the detrimental effect on code readability is mitigated.</div><div dir="auto"><br></div><div dir="auto">The other place I look, if not the actual implementation, is at the docstring. I don't remember if icontracts patches the docstring when it decorates a function. If not, that would be very helpful.</div><div dir="auto"><br></div><div dir="auto">I agree that all the Sphinx documentation examples shown are very nice. Prose descriptions would often be nicer still, but the Boolean expressions are helpful for those unusual cases where I don't want to look at the code.</div></div>