function critical
critical<T>(msg: () => T,...args: unknown[]): T | undefinedcritical<T>(msg: T extends GenericFunction ? never : T,...args: unknown[]): Tcritical<T>(msg: () => T,...args: unknown[]): T | undefinedcritical<T>(msg: T extends GenericFunction ? never : T,...args: unknown[]): T