The ir module describes a low-level C-like imperative and immutable intermediate representation (IR), including tools such as visitors, printers and rewriters. This low-level IR is the input to the code generators in the `codegen` module.
