A big string is definitely more readable (and easier to write), but the current code can (potentially) de-duplicate definitions. That's kind of nice for includes and clarity of what functions are required for a given set of functionality (e.g., this is the minimum viable subset of functions required from OpenSSL to encrypt/decrypt AES), but does feel like it could lead to confusion over why duplicate imports aren't a problem (and if formatting is different it won't de-dupe since it's not processing the string in any way).