# Souffle-dsl
[](https://github.com/luc-tielen/souffle-dsl/blob/master/LICENSE)
[](https://circleci.com/gh/luc-tielen/souffle-haskell)
[](https://hackage.haskell.org/package/souffle-dsl)
This repo provides a Haskell EDSL for writing [Souffle](https://github.com/souffle-lang/souffle)
Datalog code directly in Haskell. This DSL was initially included in the
[souffle-haskell](https://github.com/luc-tielen/souffle-haskell.git) repo, but
is now a standalone package.
## Documentation
The documentation for the library can be found on
[Hackage](https://hackage.haskell.org/package/souffle-dsl).
The documentation from [souffle-haskell](https://hackage.haskell.org/package/souffle-haskell)
is also relevant.
## Contributing
TLDR: Nix-based project; the Makefile contains the most commonly used commands.
Long version:
The project makes use of [Nix](https://nixos.org/nix/download.html) to setup the development environment.
Setup your environment by entering the following command:
```bash
$ cachix use luctielen # Optional (improves setup time *significantly*)
$ nix-shell
```
After this command, you can build the project:
```bash
$ make configure # configures the project
$ make build # builds the haskell code
$ make lint # runs the linter
$ make hoogle # starts a local hoogle webserver
```
## Issues
Found an issue or missing a piece of functionality?
Please open an issue with a description of the problem.