# Souffle-dsl [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/luc-tielen/souffle-dsl/blob/master/LICENSE) [![CircleCI](https://circleci.com/gh/luc-tielen/souffle-dsl.svg?style=svg&circle-token=07fcf633c70820100c529dda8869baa60d4b6dd8)](https://circleci.com/gh/luc-tielen/souffle-haskell) [![Hackage](https://img.shields.io/hackage/v/souffle-dsl?style=flat-square)](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.