WIP: split code types.

A `Union` here seems to produce correct output. Can split if needed though.