Haskell ffi
Хаскелисты! Не трахоёбтесь с низкоуровневыми биндингами к библиотекам. Пишите ЧАСТНЫЙ случай на C, и прибиндивайтесь к нему через FFI.
1. Это не усложняет сборку из исходников. Даже под неполноценными системами, бинарники GHC идут вместе с GCC. Кабал же, ваши нужды отлично понимает, и никаких сторонних сборочных средств не потребуется.
2. Это не усложняет разработку. GHCI позволяет подгружать как .so/.dll, так и .o и невозбранно ими пользоваться прямо из REPL.
3. Это не вносит дополнительных методологических трудностей. Низкоуровневые биндинги предполагают, что вы и так хорошо знакомы с искомой библиотекой. Да и из документации, в лучшем случае, отошлют к оригиналу.
4. Даже в низкоуровневых биндингах обычно полно всякой сишной враппер-дряни. Вам же в ней и разбираться, равно как и в хаскельской враппер-дряни.
5. В «частный случай» на C можно много чего запрятать, что негоже. А жесткие API/ABI интерфейсы обеспечат отличную изоляцию.
6. Это единственный годный способ прибиндиться к C++.