{ ghcWithPackages , runCommand }: let name = "hsie"; src = ./Main.hs; modules = ps: [ ps.aeson ps.aeson-pretty ps.cassava ps.dir-traverse ps.dot ps.ghc-exactprint ps.ghc-paths ps.optparse-applicative ]; ghc = ghcWithPackages modules; hsie = runCommand "haskellimports" { inherit name src; } '' cd $TMP cp $src $TMP/Main.hs ${ghc}/bin/ghc -O -Werror -Wall -package ghc Main.hs -o Main cp Main $out ''; bin = runCommand name { inherit hsie name; } '' mkdir -p $out/bin ln -s $hsie $out/bin/$name ''; bash-completion = runCommand "${name}-bash-completion" { inherit bin name; } "$bin/bin/$name --bash-completion-script $bin/bin/$name > $out"; in hsie // { inherit bash-completion bin; }