a one dimensional cellular automata, using comonads
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.6KB

  1. bspkgs:
  2. let
  3. dontCheckPackages = [ ];
  4. doJailbreakPackages = [ ];
  5. dontHaddockPackages = [ ];
  6. config = {
  7. packageOverrides = pkgs: rec {
  8. haskellPackages =
  9. let
  10. generatedOverrides = haskellPackagesNew: haskellPackagesOld:
  11. let
  12. toPackage = file: _: {
  13. name = builtins.replaceStrings [ ".nix" ] [ "" ] file;
  14. value = haskellPackagesNew.callPackage
  15. ( ./. + "/nix/${file}") { };
  16. };
  17. in
  18. pkgs.lib.mapAttrs' toPackage
  19. (builtins.readDir ./nix);
  20. makeOverrides =
  21. function: names: haskellPackagesNew: haskellPackagesOld:
  22. let
  23. toPackage = name: {
  24. inherit name;
  25. value = function haskellPackagesOld.${name};
  26. };
  27. in
  28. builtins.listToAttrs (map toPackage names);
  29. composeExtensionsList =
  30. pkgs.lib.fold pkgs.lib.composeExtensions (_: _: {});
  31. manualOverrides = haskellPackagesNew: haskellPackagesOld: {
  32. };
  33. in
  34. pkgs.haskellPackages.override {
  35. overrides = composeExtensionsList [
  36. generatedOverrides
  37. (makeOverrides pkgs.haskell.lib.dontCheck dontCheckPackages)
  38. (makeOverrides pkgs.haskell.lib.doJailbreak doJailbreakPackages)
  39. (makeOverrides pkgs.haskell.lib.dontHaddock dontHaddockPackages)
  40. manualOverrides
  41. ];
  42. };
  43. };
  44. };
  45. pkgs = import bspkgs.path { inherit config; system = bspkgs.system; };
  46. in
  47. pkgs.haskellPackages.cellularAutomata