summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/development/idris-modules/default.nix18
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 20 insertions, 0 deletions
diff --git a/pkgs/development/idris-modules/default.nix b/pkgs/development/idris-modules/default.nix
new file mode 100644
index 00000000000..d07619724fe
--- /dev/null
+++ b/pkgs/development/idris-modules/default.nix
@@ -0,0 +1,18 @@
+{ pkgs, idris, overrides ? (self: super: {}) }: let
+  inherit (pkgs.lib) callPackageWith fix' extends;
+
+  /* Taken from haskell-modules/default.nix, should probably abstract this away */
+  callPackageWithScope = scope: drv: args: (callPackageWith scope drv args) // {
+    overrideScope = f: callPackageWithScope (mkScope (fix' (extends f scope.__unfix__))) drv args;
+  };
+
+  mkScope = scope : pkgs // pkgs.xorg // pkgs.gnome // scope;
+
+  idrisPackages = self: let
+    defaultScope = mkScope self;
+
+    callPackage = callPackageWithScope defaultScope;
+  in {
+    withPackages = packages: callPackage ./with-packages-wrapper.nix { inherit packages idris; };
+  };
+in fix' (extends overrides idrisPackages)
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 760f3309be3..f482a74881c 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4121,6 +4121,8 @@ let
 
   icedtea_web = icedtea8_web;
 
+  idrisPackages = callPackage ../development/idris-modules { inherit (haskellPackages) idris; };
+
   ikarus = callPackage ../development/compilers/ikarus { };
 
   intercal = callPackage ../development/compilers/intercal { };