diff --git a/pkgs/lib/types.nix b/pkgs/lib/types.nix
index afd5ed5e17cd..9dce885b1826 100644
--- a/pkgs/lib/types.nix
+++ b/pkgs/lib/types.nix
@@ -116,7 +116,7 @@ rec {
     attrsOf = elemType: mkOptionType {
       name = "attribute set of ${elemType.name}s";
       check = x: lib.traceValIfNot isAttrs x
-        && fold (e: v: v && elemType.check e) true (lib.attrValues x);
+        && all elemType.check (lib.attrValues x); 
       merge = lib.zipAttrsWith (name: elemType.merge);
       iter = f: path: set: lib.mapAttrs (name: elemType.iter f (path + "." + name)) set;
       fold = op: nul: set: fold (e: l: elemType.fold op l e) nul (lib.attrValues set);