Section 2.4.3 - retrofitting type information onto scheme, Mark 2
wait, let's test this stuff!!