~/apps/desktop$ tsc --noEmit ○ cache miss: 'apps/desktop/src/preview/CdpRelay.ts' modified, executing src/app/DesktopAppActivation.ts:385:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppActivation.complete")((response) => { ... })`. effect(effectFnOpportunity) 385 complete: (response) => Effect.sync(() => broker.complete(response)), ~~~~~~~~ src/app/DesktopClerk.test.ts:300:27 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 300 currentMainOrFirst: Effect.succeed(Option.some(window)), ~~~~~~~~~~~~~~ src/app/DesktopObservability.ts:459:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("onSome")(function*(logFile) { ... })`. effect(effectFnOpportunity) 459 onSome: (logFile) => ~~~~~~ src/app/DesktopObservability.ts:589:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBackendOutputLogFactory.forInstance")((id) => { ... })`. effect(effectFnOpportunity) 589 forInstance: (id) => makeForId(id), ~~~~~~~~~~~ src/app/DesktopWebLinks.test.ts:29:31 - suggestion TS377117: `Effect.succeedSome` expresses this Option success value directly. effect(preferSucceedSomeOrNone) 29 currentMainOrFirst: Effect.succeed(Option.some(window)), ~~~~~~~~~~~~~~ src/app/DesktopWebLinks.ts:72:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWebLinks.receive")((url) => { ... })`. effect(effectFnOpportunity) 72 receive: (url) => ~~~~~~~ src/app/DesktopWebLinks.ts:77:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWebLinks.setRendererReady")((ready) => { ... })`. effect(effectFnOpportunity) 77 setRendererReady: (ready) => ~~~~~~~~~~~~~~~~ src/backend/DesktopBackendManager.ts:1046:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("onSome")(function*(run) { ... })`. effect(effectFnOpportunity) 1046 onSome: (run) => ~~~~~~ src/backend/DesktopBackendPool.ts:294:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBackendPool.get")((id) => { ... })`. effect(effectFnOpportunity) 294 get: (id) => ~~~ src/backend/DesktopBackendPool.ts:329:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBackendPool.get")((id) => { ... })`. effect(effectFnOpportunity) 329 get: (id) => Effect.succeed(Option.fromNullishOr(byId.get(id))), ~~~ src/backend/DesktopBackendPool.ts:332:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBackendPool.register")(() => { ... })`. effect(effectFnOpportunity) 332 register: () => Effect.die("DesktopBackendPool.layerTest does not support register"), ~~~~~~~~ src/backend/DesktopBackendPool.ts:333:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopBackendPool.unregister")(() => { ... })`. effect(effectFnOpportunity) 333 unregister: () => Effect.die("DesktopBackendPool.layerTest does not support unregister"), ~~~~~~~~~~ src/electron/ElectronApp.ts:138:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.exit")((code) => { ... })`. effect(effectFnOpportunity) 138 exit: (code) => ~~~~ src/electron/ElectronApp.ts:142:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.relaunch")((options) => { ... })`. effect(effectFnOpportunity) 142 relaunch: (options) => ~~~~~~~~ src/electron/ElectronApp.ts:146:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setPath")((name, path) => { ... })`. effect(effectFnOpportunity) 146 setPath: (name, path) => ~~~~~~~ src/electron/ElectronApp.ts:150:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setName")((name) => { ... })`. effect(effectFnOpportunity) 150 setName: (name) => ~~~~~~~ src/electron/ElectronApp.ts:154:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setAboutPanelOptions")((options) => { ... })`. effect(effectFnOpportunity) 154 setAboutPanelOptions: (options) => ~~~~~~~~~~~~~~~~~~~~ src/electron/ElectronApp.ts:158:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setAppUserModelId")((id) => { ... })`. effect(effectFnOpportunity) 158 setAppUserModelId: (id) => ~~~~~~~~~~~~~~~~~ src/electron/ElectronApp.ts:163:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setAsDefaultProtocolClient")((protocol, path, args) => { ... })`. effect(effectFnOpportunity) 163 setAsDefaultProtocolClient: (protocol, path, args) => ~~~~~~~~~~~~~~~~~~~~~~~~~~ src/electron/ElectronApp.ts:170:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setDesktopName")((desktopName) => { ... })`. effect(effectFnOpportunity) 170 setDesktopName: (desktopName) => ~~~~~~~~~~~~~~ src/electron/ElectronApp.ts:177:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.setDockIcon")((iconPath) => { ... })`. effect(effectFnOpportunity) 177 setDockIcon: (iconPath) => ~~~~~~~~~~~ src/electron/ElectronApp.ts:181:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.appendCommandLineSwitch")((switchName, value) => { ... })`. effect(effectFnOpportunity) 181 appendCommandLineSwitch: (switchName, value) => ~~~~~~~~~~~~~~~~~~~~~~~ src/electron/ElectronApp.ts:189:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.onBeforeQuitForUpdate")((listener) => { ... })`. effect(effectFnOpportunity) 189 onBeforeQuitForUpdate: (listener) => ~~~~~~~~~~~~~~~~~~~~~ src/electron/ElectronApp.ts:199:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronApp.removeCommandLineSwitch")((switchName) => { ... })`. effect(effectFnOpportunity) 199 removeCommandLineSwitch: (switchName) => ~~~~~~~~~~~~~~~~~~~~~~~ src/electron/ElectronDialog.ts:169:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronDialog.showMessageBox")((options, owner) => { ... })`. effect(effectFnOpportunity) 169 showMessageBox: (options, owner) => ~~~~~~~~~~~~~~ src/electron/ElectronDialog.ts:185:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronDialog.showErrorBox")((title, content) => { ... })`. effect(effectFnOpportunity) 185 showErrorBox: (title, content) => ~~~~~~~~~~~~ src/electron/ElectronMenu.ts:190:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronMenu.setApplicationMenu")((template) => { ... })`. effect(effectFnOpportunity) 190 setApplicationMenu: (template) => ~~~~~~~~~~~~~~~~~~ src/electron/ElectronMenu.ts:204:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronMenu.popupTemplate")((input) => { ... })`. effect(effectFnOpportunity) 204 popupTemplate: (input) => ~~~~~~~~~~~~~ src/electron/ElectronMenu.ts:222:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronMenu.showContextMenu")((input) => { ... })`. effect(effectFnOpportunity) 222 showContextMenu: (input) => ~~~~~~~~~~~~~~~ src/electron/ElectronPowerMonitor.ts:82:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronPowerMonitor.getSystemIdleState")((idleThresholdSeconds) => { ... })`. effect(effectFnOpportunity) 82 getSystemIdleState: (idleThresholdSeconds) => ~~~~~~~~~~~~~~~~~~ src/electron/ElectronSafeStorage.ts:77:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronSafeStorage.encryptString")((value) => { ... })`. effect(effectFnOpportunity) 77 encryptString: (value) => ~~~~~~~~~~~~~ src/electron/ElectronSafeStorage.ts:82:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronSafeStorage.decryptString")((value) => { ... })`. effect(effectFnOpportunity) 82 decryptString: (value) => ~~~~~~~~~~~~~ src/electron/ElectronShell.ts:66:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronShell.openExternal")((rawUrl) => { ... })`. effect(effectFnOpportunity) 66 openExternal: (rawUrl) => ~~~~~~~~~~~~ src/electron/ElectronShell.ts:77:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronShell.openSystemSettings")((pane) => { ... })`. effect(effectFnOpportunity) 77 openSystemSettings: (pane) => ~~~~~~~~~~~~~~~~~~ src/electron/ElectronShell.ts:84:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronShell.copyText")((text) => { ... })`. effect(effectFnOpportunity) 84 copyText: (text) => ~~~~~~~~ src/electron/ElectronTheme.ts:34:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronTheme.setSource")((theme) => { ... })`. effect(effectFnOpportunity) 34 setSource: (theme) => ~~~~~~~~~ src/electron/ElectronTheme.ts:41:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronTheme.onUpdated")((listener) => { ... })`. effect(effectFnOpportunity) 41 onUpdated: (listener) => ~~~~~~~~~ src/electron/ElectronUpdater.ts:85:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setFeedURL")((options) => { ... })`. effect(effectFnOpportunity) 85 setFeedURL: (options) => ~~~~~~~~~~ src/electron/ElectronUpdater.ts:90:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setAutoDownload")((value) => { ... })`. effect(effectFnOpportunity) 90 setAutoDownload: (value) => ~~~~~~~~~~~~~~~ src/electron/ElectronUpdater.ts:95:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setAutoInstallOnAppQuit")((value) => { ... })`. effect(effectFnOpportunity) 95 setAutoInstallOnAppQuit: (value) => ~~~~~~~~~~~~~~~~~~~~~~~ src/electron/ElectronUpdater.ts:100:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setChannel")((channel) => { ... })`. effect(effectFnOpportunity) 100 setChannel: (channel) => ~~~~~~~~~~ src/electron/ElectronUpdater.ts:105:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setAllowPrerelease")((value) => { ... })`. effect(effectFnOpportunity) 105 setAllowPrerelease: (value) => ~~~~~~~~~~~~~~~~~~ src/electron/ElectronUpdater.ts:111:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setAllowDowngrade")((value) => { ... })`. effect(effectFnOpportunity) 111 setAllowDowngrade: (value) => ~~~~~~~~~~~~~~~~~ src/electron/ElectronUpdater.ts:116:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setFullChangelog")((value) => { ... })`. effect(effectFnOpportunity) 116 setFullChangelog: (value) => ~~~~~~~~~~~~~~~~ src/electron/ElectronUpdater.ts:121:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.setDisableDifferentialDownload")((value) => { ... })`. effect(effectFnOpportunity) 121 setDisableDifferentialDownload: (value) => ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/electron/ElectronUpdater.ts:140:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.quitAndInstall")((_) => { ... })`. effect(effectFnOpportunity) 140 quitAndInstall: ({ isSilent, isForceRunAfter }) => ~~~~~~~~~~~~~~ src/electron/ElectronUpdater.ts:154:3 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronUpdater.on")((eventName, listener) => { ... })`. effect(effectFnOpportunity) 154 on: (eventName, listener) => { ~~ src/electron/ElectronWindow.ts:210:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronWindow.create")((options) => { ... })`. effect(effectFnOpportunity) 210 create: (options) => { ~~~~~~ src/electron/ElectronWindow.ts:242:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronWindow.setMain")((window) => { ... })`. effect(effectFnOpportunity) 242 setMain: (window) => Ref.set(mainWindowRef, Option.some(window)), ~~~~~~~ src/electron/ElectronWindow.ts:243:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronWindow.clearMain")((window) => { ... })`. effect(effectFnOpportunity) 243 clearMain: (window) => ~~~~~~~~~ src/electron/ElectronWindow.ts:253:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronWindow.prepareReveal")((window) => { ... })`. effect(effectFnOpportunity) 253 prepareReveal: (window) => ~~~~~~~~~~~~~ src/electron/ElectronWindow.ts:263:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("ElectronWindow.reveal")((window) => { ... })`. effect(effectFnOpportunity) 263 reveal: (window) => ~~~~~~ src/settings/DesktopAppSettings.ts:524:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setMainWindowBounds")((bounds, isMaximized) => { ... })`. effect(effectFnOpportunity) 524 setMainWindowBounds: (bounds, isMaximized) => ~~~~~~~~~~~~~~~~~~~ src/settings/DesktopAppSettings.ts:536:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setServerExposureMode")((mode) => { ... })`. effect(effectFnOpportunity) 536 setServerExposureMode: (mode) => ~~~~~~~~~~~~~~~~~~~~~ src/settings/DesktopAppSettings.ts:540:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setTailscaleServe")((input) => { ... })`. effect(effectFnOpportunity) 540 setTailscaleServe: (input) => ~~~~~~~~~~~~~~~~~ src/settings/DesktopAppSettings.ts:544:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setUpdateChannel")((channel) => { ... })`. effect(effectFnOpportunity) 544 setUpdateChannel: (channel) => ~~~~~~~~~~~~~~~~ src/settings/DesktopAppSettings.ts:548:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslBackendEnabled")((enabled) => { ... })`. effect(effectFnOpportunity) 548 setWslBackendEnabled: (enabled) => ~~~~~~~~~~~~~~~~~~~~ src/settings/DesktopAppSettings.ts:552:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslDistro")((distro) => { ... })`. effect(effectFnOpportunity) 552 setWslDistro: (distro) => ~~~~~~~~~~~~ src/settings/DesktopAppSettings.ts:558:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslOnly")((enabled) => { ... })`. effect(effectFnOpportunity) 558 setWslOnly: (enabled) => ~~~~~~~~~~ src/settings/DesktopAppSettings.ts:562:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setLocalEnvironmentEnabled")((enabled) => { ... })`. effect(effectFnOpportunity) 562 setLocalEnvironmentEnabled: (enabled) => ~~~~~~~~~~~~~~~~~~~~~~~~~~ src/settings/DesktopAppSettings.ts:597:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setMainWindowBounds")((bounds, isMaximized) => { ... })`. effect(effectFnOpportunity) 597 setMainWindowBounds: (bounds, isMaximized) => ~~~~~~~~~~~~~~~~~~~ src/settings/DesktopAppSettings.ts:599:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setServerExposureMode")((mode) => { ... })`. effect(effectFnOpportunity) 599 setServerExposureMode: (mode) => ~~~~~~~~~~~~~~~~~~~~~ src/settings/DesktopAppSettings.ts:601:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setTailscaleServe")((input) => { ... })`. effect(effectFnOpportunity) 601 setTailscaleServe: (input) => update((settings) => setTailscaleServe(settings, input)), ~~~~~~~~~~~~~~~~~ src/settings/DesktopAppSettings.ts:602:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setUpdateChannel")((channel) => { ... })`. effect(effectFnOpportunity) 602 setUpdateChannel: (channel) => update((settings) => setUpdateChannel(settings, channel)), ~~~~~~~~~~~~~~~~ src/settings/DesktopAppSettings.ts:603:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslBackendEnabled")((enabled) => { ... })`. effect(effectFnOpportunity) 603 setWslBackendEnabled: (enabled) => ~~~~~~~~~~~~~~~~~~~~ src/settings/DesktopAppSettings.ts:605:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslDistro")((distro) => { ... })`. effect(effectFnOpportunity) 605 setWslDistro: (distro) => update((settings) => setWslDistro(settings, distro)), ~~~~~~~~~~~~ src/settings/DesktopAppSettings.ts:606:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setWslOnly")((enabled) => { ... })`. effect(effectFnOpportunity) 606 setWslOnly: (enabled) => update((settings) => setWslOnly(settings, enabled)), ~~~~~~~~~~ src/settings/DesktopAppSettings.ts:607:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopAppSettings.setLocalEnvironmentEnabled")((enabled) => { ... })`. effect(effectFnOpportunity) 607 setLocalEnvironmentEnabled: (enabled) => ~~~~~~~~~~~~~~~~~~~~~~~~~~ src/settings/DesktopClientSettings.ts:197:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopClientSettings.set")((settings) => { ... })`. effect(effectFnOpportunity) 197 set: (settings) => ~~~ src/settings/DesktopClientSettings.ts:231:9 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopClientSettings.set")((settings) => { ... })`. effect(effectFnOpportunity) 231 set: (settings) => Ref.set(settingsRef, Option.some(settings)), ~~~ src/snapShot/DesktopSnapShot.ts:1720:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSnapShot.setAnimationDestination")((id, destination) => { ... })`. effect(effectFnOpportunity) 1720 setAnimationDestination: (id, destination) => ~~~~~~~~~~~~~~~~~~~~~~~ src/snapShot/DesktopSnapShot.ts:1731:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSnapShot.dismissAnimation")((id) => { ... })`. effect(effectFnOpportunity) 1731 dismissAnimation: (id) => ~~~~~~~~~~~~~~~~ src/snapShot/DesktopSnapShot.ts:1736:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSnapShot.acknowledge")((id) => { ... })`. effect(effectFnOpportunity) 1736 acknowledge: (id) => ~~~~~~~~~~~ src/ssh/DesktopSshEnvironment.ts:136:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSshEnvironment.discoverHosts")((input) => { ... })`. effect(effectFnOpportunity) 136 discoverHosts: (input) => ~~~~~~~~~~~~~ src/ssh/DesktopSshEnvironment.ts:141:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSshEnvironment.resolveHost")((alias) => { ... })`. effect(effectFnOpportunity) 141 resolveHost: (alias) => ~~~~~~~~~~~ src/ssh/DesktopSshEnvironment.ts:146:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSshEnvironment.ensureEnvironment")((target, ensureOptions) => { ... })`. effect(effectFnOpportunity) 146 ensureEnvironment: (target, ensureOptions) => ~~~~~~~~~~~~~~~~~ src/ssh/DesktopSshEnvironment.ts:154:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopSshEnvironment.disconnectEnvironment")((target) => { ... })`. effect(effectFnOpportunity) 154 disconnectEnvironment: (target) => ~~~~~~~~~~~~~~~~~~~~~ src/updates/DesktopUpdates.ts:1162:5 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopUpdates.installPrepared")((expectedVersion) => { ... })`. effect(effectFnOpportunity) 1162 installPrepared: (expectedVersion) => installWithExpectedVersion(expectedVersion), ~~~~~~~~~~~~~~~ src/wsl/DesktopWslEnvironment.ts:1073:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.preWarm")(() => { ... })`. effect(effectFnOpportunity) 1073 preWarm: () => Effect.void, ~~~~~~~ src/wsl/DesktopWslEnvironment.ts:1074:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.windowsToWslPath")((distro, windowsPath) => { ... })`. effect(effectFnOpportunity) 1074 windowsToWslPath: (distro, windowsPath) => ~~~~~~~~~~~~~~~~ src/wsl/DesktopWslEnvironment.ts:1076:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.getUserHome")((distro) => { ... })`. effect(effectFnOpportunity) 1076 getUserHome: (distro) => Effect.succeed(stub.getUserHome?.(distro) ?? Option.none()), ~~~~~~~~~~~ src/wsl/DesktopWslEnvironment.ts:1077:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.getDistroIp")((distro) => { ... })`. effect(effectFnOpportunity) 1077 getDistroIp: (distro) => Effect.succeed(stub.getDistroIp?.(distro) ?? Option.none()), ~~~~~~~~~~~ src/wsl/DesktopWslEnvironment.ts:1078:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.prepareRuntime")((distro, archive) => { ... })`. effect(effectFnOpportunity) 1078 prepareRuntime: (distro, archive) => ~~~~~~~~~~~~~~ src/wsl/DesktopWslEnvironment.ts:1085:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.pruneRuntimes")((distro, runtimeId) => { ... })`. effect(effectFnOpportunity) 1085 pruneRuntimes: (distro, runtimeId) => stub.pruneRuntimes?.(distro, runtimeId) ?? Effect.void, ~~~~~~~~~~~~~ src/wsl/DesktopWslEnvironment.ts:1086:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.invalidateRuntime")((distro, runtimeId) => { ... })`. effect(effectFnOpportunity) 1086 invalidateRuntime: (distro, runtimeId) => ~~~~~~~~~~~~~~~~~ src/wsl/DesktopWslEnvironment.ts:1088:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.probeRuntime")((distro, linuxAppRoot) => { ... })`. effect(effectFnOpportunity) 1088 probeRuntime: (distro, linuxAppRoot) => ~~~~~~~~~~~~ src/wsl/DesktopWslEnvironment.ts:1092:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.ensureNodePty")((distro, linuxAppRoot, options) => { ... })`. effect(effectFnOpportunity) 1092 ensureNodePty: (distro, linuxAppRoot, options) => ~~~~~~~~~~~~~ src/wsl/DesktopWslEnvironment.ts:1154:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.preWarm")((distro) => { ... })`. effect(effectFnOpportunity) 1154 preWarm: (distro) => ~~~~~~~ src/wsl/DesktopWslEnvironment.ts:1159:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.prepareRuntime")((distro, archive) => { ... })`. effect(effectFnOpportunity) 1159 prepareRuntime: (distro, archive) => ~~~~~~~~~~~~~~ src/wsl/DesktopWslEnvironment.ts:1163:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.pruneRuntimes")((distro, runtimeId) => { ... })`. effect(effectFnOpportunity) 1163 pruneRuntimes: (distro, runtimeId) => ~~~~~~~~~~~~~ src/wsl/DesktopWslEnvironment.ts:1167:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.invalidateRuntime")((distro, runtimeId) => { ... })`. effect(effectFnOpportunity) 1167 invalidateRuntime: (distro, runtimeId) => ~~~~~~~~~~~~~~~~~ src/wsl/DesktopWslEnvironment.ts:1171:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.probeRuntime")((distro, linuxAppRoot) => { ... })`. effect(effectFnOpportunity) 1171 probeRuntime: (distro, linuxAppRoot) => ~~~~~~~~~~~~ src/wsl/DesktopWslEnvironment.ts:1175:7 - suggestion TS377047: This expression can be rewritten in the reusable function form `Effect.fn("DesktopWslEnvironment.ensureNodePty")((distro, linuxAppRoot, options) => { ... })`. effect(effectFnOpportunity) 1175 ensureNodePty: (distro, linuxAppRoot, options) => ~~~~~~~~~~~~~