a one dimensional cellular automata, using comonads
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

48 lignes
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