You are missing the only command that could enlighten you : > foo ? bar true
The second operant is taken as a string literal, that's why you need to evaluate variables there. The following also works : > foo ? ${quux} true -- Layus. Le 09/05/16 à 15:25, Samuel a écrit : > Am I holding some false assumption here? It seems the ? operator has > different behaviour depending on how the right hand side is evaluated: > > nix-repl> foo = { bar = "baz"; } > > nix-repl> quux = "bar" > > nix-repl> foo ? "bar" > true > > nix-repl> foo ? quux > false > > nix-repl> foo ? "${quux}" > true > > nix-repl> quux == "${quux}" > true > > nix-repl> builtins.typeOf quux > "string" > _______________________________________________ nix-dev mailing list nix-dev@lists.science.uu.nl http://lists.science.uu.nl/mailman/listinfo/nix-dev