Haskell Development
This is meant to be an aggregation of unintuitive things I've encountered when developing with haskell.
1 Generating docs
One would like to run a local hoogle instance to avoid noise. How does one do this?
# generate html documentation into ./haddocks
cabal haddock-project --hoogle --all --internal --foreign-libraries --keep-temp-files
# generate hoogle database from project
hoogle generate --local=haddocks/ --database=project.hoo
hoogle server -p 8910 --local --host 0.0.0.0 -n --database project.hoo
# generate html documentation into ./haddocks
cabal haddock-project --hoogle --all --internal --foreign-libraries --keep-temp-files
# generate hoogle database from project
hoogle generate --local=haddocks/ --database=project.hoo
hoogle server -p 8910 --local --host 0.0.0.0 -n --database project.hoo
This will create a local hoogle database viewable at
0.0.0.0:8910
0.0.0.0:8910
. Note that the
--database
--database
flag can be left out to write the database in
$HOME/.hoogle
$HOME/.hoogle
.
I didn't use
nix
nix
for this because if I do run
doHoogle
doHoogle
, then the database doesn't include all the packages I need. I'll elaborate on how I set up the nix shell in the future.