anchor.diff:  , isExecutable ? false, isLibrary ? !isExecutable
   , jailbreak ? false
   , license
  -# We cannot enable -j<n> parallelism for libraries because GHC is far more
  -# likely to generate a non-determistic library ID in that case. Further
  -# details are at <https://github.com/peti/ghc-library-id-bug>.
  -#
  -# Currently disabled for aarch64. See https://ghc.haskell.org/trac/ghc/ticket/15449.
  -, enableParallelBuilding ? ((stdenv.lib.versionOlder "7.8" ghc.version && !isLibrary) || stdenv.lib.versionOlder "8.0.1" ghc.version) && !(stdenv.buildPlatform.isAarch64)
  +  # aarch64 sometimes crashes for -jn with n>1: https://ghc.haskell.org/trac/ghc/ticket/15449
  +, enableParallelBuilding ? !stdenv.buildPlatform.isAarch64
   , maintainers ? []
   , doCoverage ? false
   , doHaddock ? !(ghc.isHaLVM or false)
  
positive.code:     (optionalString enableHsc2hsViaAsm "--hsc2hs-option=--via-asm")
    ];
  
    crossCabalFlagsString =
      stdenv.lib.optionalString isCross (" " + stdenv.lib.concatStringsSep " " crossCabalFlags);
  
  
negative.code: 
    setupCompileFlags = [
      (optionalString (!coreSetup) "-${nativePackageDbFlag}=$setupPackageConfDir")
      (optionalString enableParallelBuilding (parallelBuildingFlags))
      "-threaded"       # https://github.com/haskell/cabal/issues/2398
      "-rtsopts"        # allow us to pass RTS flags to the generated Setup executable
    ];
  
    isHaskellPkg = x: x ? isHaskellLibrary;
  