nix-book/source/recipes/devshell/haskell-pkg/main.adoc0
Amy de Buitléir cc0d0228cd temp
2025-09-13 20:44:16 +01:00

58 lines
1.2 KiB
Text

= Access a Haskell library package in the nixpkgs repo (without a `.cabal` file)
////
$ mkdir tempwork
$ cd tempwork
$ cp ../flake.nix ../Main.hs .
$ git add Main.hs flake.nix
$ nix develop
$ git add flake.lock
$ git commit -a -m temp
////
Occasionally you might want to run a short Haskell program that depends on a Haskell library,
but you don't want to bother writing a cabal file.
In this example, we will access the `containers` package from the `haskellPackages` set in the nixpkgs repo.
[source,nix,linenums,highlight='11,16']
.flake.nix
....
include::flake.nix[]
....
Here's a short Haskell program that uses it.
[source,haskell,linenums]
.Main.hs
....
include::Main.hs[]
....
REDO containers is there by default
REDO containers is there by default
REDO containers is there by default
REDO containers is there by default
REDO containers is there by default
REDO containers is there by default
REDO containers is there by default
REDO containers is there by default
Here's a demonstration using the program.
....
$# ../../../../../start-shell nix develop <<EOL
$ runghc Main.hs
$# EOL
....
////
Good adoc0 scripts clean up after themselves.
$ cd .. ; rm -rf tempwork # clean up
////