finish
Encoder
This simplifies things, but requires making `CacheEncoder` non-generic.
Please read the rustc-dev-guide chapter on Backend Agnostic Codegen.