{ 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; symantic-parser = buildFromSdist (hself.callCabal2nix "symantic-parser" ./. {}); } ); in hs.symantic-parser // { shell = hs.shellFor { packages = p: [ p.symantic-parser ]; nativeBuildInputs = [ hs.cabal-install #hs.ghc-events #hs.ghc-events-analyze #hs.threadscope #hs.haskell-language-server #hs.hpc ]; buildInputs = [ #hs.ghcid pkgs.ormolu pkgs.cabal2nix #hs.hlint #pkgs.nixpkgs-fmt ]; inherit withHoogle; }; }