Skip to content

srid/haskell-template

Repository files navigation

haskell-template

Get a Haskell development environment up and running quickly. Thanks to Nix, this template is optimized for a fully reproducible and friendly development environment. It is based on:

If you have an existing Haskell project, you should probably use https://github.com/srid/haskell-flake instead.

Getting Started

Initialize this template using:

nix --accept-flake-config run github:juspay/omnix -- \
  init github:srid/haskell-template -o ./yourproject

tldr: Install Nix, setup direnv, open in VSCode, install recommended extensions and run just run.

Full instructions: https://srid.ca/haskell-template/start

Recommended dev environment setup: https://nixos.asia/en/direnv

Tips

  • Run nix flake update to update all flake inputs.
  • Run nix --accept-flake-config run github:juspay/omnix ci to build all outputs.
  • pre-commit hooks will automatically be setup in Nix shell. You can also run pre-commit run -a manually to run the hooks (e.g.: to autoformat the project tree using fourmolu, nixpkgs-fmt, etc. as well run programs like hlint). The hooks will checked as part of flake checks (thus CI).
  • Run just docs to start Hoogle with packages in your cabal file.
  • Run the application without installing: nix run github:srid/haskell-template (or nix run . from checkout)
  • Common workflows

Discussions

Questions? Ideas? Suggestions? Join our NixOS Zulip or post in Github Discussions.