Added Geoff's patch that allows defining the same struct in multiple .zir files and then linked into a single executable, using preprocessor directives