summary refs log tree commit diff
path: root/pkgs/development/idris-modules
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/idris-modules')
-rw-r--r--pkgs/development/idris-modules/default.nix18
1 files changed, 18 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)