{ pkgs ? import {} , ghc ? "ghc901" , withHoogle ? false }: let haskellPackages = if ghc == null then pkgs.haskellPackages else pkgs.haskell.packages.${ghc}; hs = haskellPackages.extend (with pkgs.haskell.lib; hself: hsuper: { #symantic-parser = enableExecutableProfiling (doCheck ( hself.callCabal2nix "symantic-parser" ./. {})); # FIXME: this should not be necessary, but haskellPackages.ormolu is currently broken. ormolu = pkgs.ormolu; text-short = dontCheck hsuper.text-short; hs-speedscope = doJailbreak (unmarkBroken hsuper.hs-speedscope); eventlog2html = doJailbreak (unmarkBroken hsuper.eventlog2html); trie-simple = doJailbreak (unmarkBroken hsuper.trie-simple); symantic-parser = doBenchmark (buildFromSdist (hself.callCabal2nix "symantic-parser" ./. {})); } ); in hs.symantic-parser // { shell = hs.shellFor { doBenchmark = true; packages = p: [ p.symantic-parser ]; nativeBuildInputs = [ hs.cabal-install hs.ghc-events hs.hs-speedscope hs.profiteur hs.eventlog2html #hs.threadscope #hs.ghc-events-analyze #hs.haskell-language-server #hs.hpc ]; buildInputs = [ #hs.ghcid pkgs.ormolu pkgs.cabal2nix #hs.hlint #pkgs.nixpkgs-fmt ]; inherit withHoogle; }; }