{ pkgs ? import <nixpkgs> {}
, 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);
#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 = [
pkgs.cabal-install
#hs.cabal-install
#hs.haskell-language-server
#hs.hpc
];
buildInputs = [
#hs.ghcid
#hs.ormolu
#hs.hlint
#pkgs.nixpkgs-fmt
];
inherit withHoogle;
};
}