1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
{ lib, config, ... }: let inherit (lib) types; in { options = { fun = lib.mkOption { type = types.functionTo (types.listOf types.str); }; result = lib.mkOption { type = types.str; default = toString (config.fun { a = "a"; b = "b"; c = "c"; }); }; }; config.fun = lib.mkMerge [ (input: [ input.a ]) (input: [ input.b ]) ]; }