Wed Apr 10 13:43:56 EDT 2019

cabal2nix guidelines

0. Running "cabal" inside the nix environment will refer to the cabal
   outside the environment.  This is very confusing at first.  What
   cabal2nix does is provide an environment in which ghc and ghci see
   the base module set so they can compile the .hs modules inside the

1. Keep packages small.  Split things up in a core library, side
   libraries, tools and test binaries.  nix is very slow, and you will
   get stuck in a loop at some point where there is an error right at
   the end and you have to sit through a full build for the next

2. Use cabal2nix to create a separate setup where only the base
   modules are provided, but all the modules that you're working on
   are loaded in interpreted mode.  I.e. just link them into the
   isolated directory used for the ghcid config.