codegen module needs proper encapsulation.
Currently, besides Andreas's recent changes in the ir2structured_ir
module (96613118), none of the names in the codegen module are prefixed with underscores to indicate they are private. This makes the interface to the components in the codegen module confusing.
The codegen module should use the initial underscore syntax to distinguish private values from the public facing interface.