What works for me is to have very well thought out variable names. For instance, mike = make_person() is the same as Person mike = new Person(). I don't see how the typed example is better in any way... I know mike is a person, because what else would mike be?
Some person got familiar with my book's draft and said that it's clear that I'm not a practitioner, and the there is no way to use these approaches in practice.