WIP: split code types.

Wasn't sure whether `BlockCode` would need an `inline` printing method.