На самом деле nixpkgs -- это функция от вот той самой рекуррентной функции (которая функция от итогового аттрсета всех пакетов) и для этой функции итеративно ищется неподвижная точка, начиная с "нативных" пакетов
И после этого эта функция второго порядка подставляет прокинутый ей с помощью костыля набор пакетов из nixpkgs, развязанного в предыдущем вызове себя в качестве начального аргумента nixpkgs в текущем вызове себя
И после этого эта функция второго порядка подставляет прокинутый ей с помощью костыля набор пакетов из nixpkgs, развязанного в предыдущем вызове себя в качестве начального аргумента nixpkgs в текущем вызове себя