let inherit (builtins) concatStringsSep attrValues mapAttrs; inherit (import ) optionalString squash; in builtinsInfo: let showBuiltin = name: { doc, type ? null, args ? [ ], experimental-feature ? null, impure-only ? false }: let type' = optionalString (type != null) " (${type})"; experimentalNotice = optionalString (experimental-feature != null) '' > **Note** > > This function is only available if the [`${experimental-feature}` experimental feature](@docroot@/development/experimental-features.md#xp-feature-${experimental-feature}) is enabled. > > For example, include the following in [`nix.conf`](@docroot@/command-ref/conf-file.md): > > ``` > extra-experimental-features = ${experimental-feature} > ``` ''; impureNotice = optionalString impure-only '' > **Note** > > Not available in [pure evaluation mode](@docroot@/command-ref/conf-file.md#conf-pure-eval). ''; in squash ''
${name}${listArgs args}${type'}
${experimentalNotice} ${doc} ${impureNotice}
''; listArgs = args: concatStringsSep "" (map (s: " ${s}") args); in concatStringsSep "\n" (attrValues (mapAttrs showBuiltin builtinsInfo))