デフォルトサービス
Effectには、5つのプリビルトサービスが備わっています。
type DefaultServices = Clock | Console | Random | ConfigProvider | Tracerこれらのサービスを利用する際、明示的に実装を提供する必要はありません。Effectが自動的にこれらのサービスのライブバージョンを効果に供給し、手動でのセットアップを不要にしてくれます。
import { Effect, Clock, Console } from "effect"
const program = Effect.gen(function* () { const now = yield* Clock.currentTimeMillis yield* Console.log(`アプリケーションは ${new Date(now)} に起動しました`)})ご覧のとおり、プログラムがClockとConsoleの両方を利用している場合でも、エフェクトを実行するために必要なサービスを示すRequirementsパラメータはneverのままです。Effectがこれらのサービスをシームレスに処理してくれるのです。