= Access to a Haskell package defined in a flake (without using a `.cabal` file) //// $ mkdir tempwork $ cd tempwork $ cp ../flake.nix . $ git add 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 a Haskell package called `pandoc-columns`) that is defined in a flake in a remote git repo. [NOTE] ==== For non-trivial Haskell development projects, it's usually more convenient to use `haskell-flake` as described in <<#haskell-flake>>, together with the _high-level workflow_ described in <<_development_workflows>>. ==== [source,nix,linenums,highlight='5,8,12,17'] .flake.nix .... include::flake.nix[] .... Line 5 adds `pandoc-columns` as an input to this flake. Line 8 allows the output function to reference `pandoc-columns`. Line 12 makes a custom GHC that knows about `pandoc-columns`, and line 17 uses the custom GHC as a build input for this flake. Here's a short Haskell program that uses the new flake. [source,haskell,linenums] .Main.hs .... include::Main.hs[] .... Here's a demonstration using the program. .... $ runghc Main.hs # Fails; dependency not available $# start-shell nix develop <