Botan bindings devlog Technical challenges of importing Botan's `BOTAN_HAS_` support macros for use in Haskell with CPP and conditional compilation. The main obstacles include an indented `#define` in `build.h` that violates strict C parsing rules, and the inability to import `botan/version.h` for version macros. The developer ultimately solves the problem by creating a C++ shim header with a `.hpp` extension, which allows proper macro import and includes backwards-compatible definitions for older Botan versions. The last update ended with a brief foray into importing botan’s BOTAN HAS