Final draft before posting to python-ideas for further discussion