{ 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: { data-fix = doJailbreak hsuper.data-fix; primitive = doJailbreak hsuper.primitive; assoc = doJailbreak hsuper.assoc; these = doJailbreak hsuper.these; dump-core = dontCheck (unmarkBroken hsuper.dump-core); #profunctors = doJailbreak (unmarkBroken hsuper.profunctors); #th-expand-syns = doJailbreak (unmarkBroken hsuper.th-expand-syns); profunctors = dontCheck (unmarkBroken (doJailbreak (hsuper.callHackageDirect { pkg = "profunctors"; ver = "5.6.2"; sha256 = "sha256-Vrlp6lvMNi+Bk+AHBMbnQE9NVzdASrcrFaWbkJew9qU="; } {}))); system-fileio = doJailbreak hsuper.system-fileio; turtle = doJailbreak hsuper.turtle; #symantic-parser = enableExecutableProfiling (doCheck ( hself.callCabal2nix "symantic-parser" ./. {})); } // packageSourceOverrides { symantic-parser = ./.; } hself hsuper ); 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 #hs.hlint #pkgs.nixpkgs-fmt ]; inherit withHoogle; }; }