Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Have you looked into the work that Ed Kmett was doing around this topic? The repo is here. I don't think that doing logic programming Haskell from like a EDSL-ish approach will ever be as fast as in a real Prolog implementation, but I do think you can get acceptable performance just like you can in Scheme/Racket.
Have you seen /u/ltielen's souffle-haskell? It's bindings to Soufflé, which is similar to Datalog, which is similar to Prolog. We pair-programmed on the code which transfers the data between the Haskell and C++ sides, and I can attest that Luc put a lot of effort into making the library run fast.
For these reasons I've been building eclair, which is another high performance Datalog compiler written in Haskell, that compiles to LLVM, and is also based on Souffle. So far it is still in a fairly early stage, but I'm making progress. :)
And in case you're wondering, yes I made eclair-haskell as well! Almost same API, but there are some things I still need to iron out (after I finish adding support for strings..).