{ lib, ... }: let inherit (lib) concatLists mapAttrsToList showOption; in rec { flattenMapServicesConfigToList = f: loc: config: f loc config ++ concatLists ( mapAttrsToList ( k: v: flattenMapServicesConfigToList f ( loc ++ [ "services" k ] ) v ) config.services ); getWarnings = flattenMapServicesConfigToList ( loc: config: map (msg: "in ${showOption loc}: ${msg}") config.warnings ); getAssertions = flattenMapServicesConfigToList ( loc: config: map (ass: { message = "in ${showOption loc}: ${ass.message}"; assertion = ass.assertion; }) config.assertions ); }