When creating libraries in Python, I have always strived to make their behavior transparent to other programmers. No matter how complex the library is internally, it should have a clear and obvious facade externally. One of the important parts of such a facade is the way objects are presented as strings.
What does a user do when they first encounter my library? I assume they try to run it in REPL.