You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`IO`는 그 자체가 특정 모나드이므로 제네릭 `M` 버전이 불필요합니다. `Validation`은 모나드가 아닌 데이터 타입이므로 어떤 모나드 `M`과도 조합 가능하여 제네릭 `M`버전과 IO 특화 버전 모두 제공합니다.
351
+
`IO`는 그 자체가 특정 모나드이므로 제네릭 `M` 버전이 불필요합니다. `Validation`은 모나드가 아닌 데이터 타입이므로 어떤 모나드 `M`과도 조합 가능합니다. `IO` 역시 `Monad<IO>`를 만족하므로, 제네릭 `M`오버로드가 타입 추론으로 `FinT<IO, _>` 컨텍스트까지 커버하며 IO 특화 중복 오버로드가 필요하지 않습니다.
| Source → FinT\<M, B\>| IO only | Generic M + IO |
351
-
| FinT\<M, A\> → Source | IO only | Generic M + IO |
348
+
| Source → FinT\<M, B\>| IO only | Generic M |
349
+
| FinT\<M, A\> → Source | IO only | Generic M |
352
350
353
-
`IO` is itself a specific monad, so a generic `M` version is unnecessary. `Validation` is a data type rather than a monad, so it can be combined with any monad `M`, providing both a generic `M`version and an IO-specialized version.
351
+
`IO` is itself a specific monad, so a generic `M` version is unnecessary. `Validation` is a data type rather than a monad, so it can be combined with any monad `M` — including `IO`, which satisfies `Monad<IO>`. The generic `M`overload covers `FinT<IO, _>` contexts via type inference, so no IO-specialized duplicate is needed.
0 commit comments