about summary refs log tree commit diff
path: root/pkgs/lib
diff options
context:
space:
mode:
authorMichael Raskin <7c6f434c@mail.ru>2008-08-20 11:20:32 +0000
committerMichael Raskin <7c6f434c@mail.ru>2008-08-20 11:20:32 +0000
commitd7acaeb0969bf6d5d4be83ca23fd2e86baf8eba5 (patch)
tree16268855712e029137bb4d6503f92024bdbf4067 /pkgs/lib
parenta921f752b8f0c0047bf4b05985cbf3738cab5a27 (diff)
Refactorings and removing hard-coded assumptions
svn path=/nixpkgs/trunk/; revision=12668
Diffstat (limited to 'pkgs/lib')
-rw-r--r--pkgs/lib/default.nix11
1 files changed, 6 insertions, 5 deletions
diff --git a/pkgs/lib/default.nix b/pkgs/lib/default.nix
index ecbe18dfa7e42..8b5548bd6d826 100644
--- a/pkgs/lib/default.nix
+++ b/pkgs/lib/default.nix
@@ -32,20 +32,21 @@ rec {
 	else (innerComposedArgs f (y x))));
   composedArgs = f: innerComposedArgs f {};
 
-  defaultMerge = x : y: if builtins.isAttrs y then
-    x // y
+  defaultMergeArg = x : y: if builtins.isAttrs y then
+    y
   else 
-    y x;
+    (y x);
+  defaultMerge = x: y: x // (defaultMergeArg x y);
   sumTwoArgs = f: x: y: 
     f (defaultMerge x y);
   foldArgs = merger: f: init: x: 
-    let arg=(merger init (defaultMerge init x)); in
+    let arg=(merger init (defaultMergeArg init x)); in
       (f arg) // {
         meta = {
 	  function = foldArgs merger f arg;
 	};
       };
-  composedArgsAndFun = f: foldArgs (x: y: y) f {};
+  composedArgsAndFun = f: foldArgs defaultMerge f {};
 
   # example a = pairMap (x : y : x + y) ["a" "b" "c" "d"];
   # result: ["ab" "cd"]