Redesign
        - I went about matching types in the wrong way. For one, a
        union type is actually simple to write after all.
        - The right way is a second abstract syntax tree for C, and
        then pretty printing it. Otherwise there would be no easy
        way to rearrange elements such as callback functions to their
        right location.