diff --git a/pkgs/lib/debug.nix b/pkgs/lib/debug.nix index c05f540e503..4f757653bc0 100644 --- a/pkgs/lib/debug.nix +++ b/pkgs/lib/debug.nix @@ -33,11 +33,11 @@ rec { else "x is attr set { ${attrNamesToStr x} }" else if isFunction x then "x is a function" else if x == [] then "x is an empty list" - else if isList x then "x is a list, first item is : ${showVal (head x)}" + else if isList x then "x is a list, first element is: ${showVal (head x)}" else if x == true then "x is boolean true" else if x == false then "x is boolean false" else if x == null then "x is null" - else "x is probably a string starting, starting characters: ${substring 0 50 x}.."; + else "x is probably a string `${substring 0 50 x}...'"; # trace the arguments passed to function and its result traceCall = n : f : a : let t = n2 : x : traceShowValMarked "${n} ${n2}:" x; in t "result" (f (t "arg 1" a)); traceCall2 = n : f : a : b : let t = n2 : x : traceShowValMarked "${n} ${n2}:" x; in t "result" (f (t "arg 1" a) (t "arg 2" b)); diff --git a/pkgs/lib/types.nix b/pkgs/lib/types.nix index a9fa41ebdd5..7e164f30764 100644 --- a/pkgs/lib/types.nix +++ b/pkgs/lib/types.nix @@ -110,6 +110,8 @@ rec { fold = op: nul: v: if v == null then nul else elemType.fold op nul v; }; + # !!! this should be a type constructor that takes the options as + # an argument. optionSet = mkOptionType { name = "option set"; check = x: lib.traceValIfNot builtins.isAttrs x;