The problem: if we're going to introduce the Start classes then we
have to use them universally, including within the runtime. The
generated code was using the wrong classes in the block chain, so
it would break at runtime with a ClassCastException.