http://www.pragmatec.net/pp/mdksi/2019-07-10py1.html