Running the tests on travis revealed that some compilers (or at least with some options) call the wrong struct constructor if there is more than one struct with the same name but differing definitions.