Skip to content

Commit ae6efea

Browse files
committed
docs(spec): FinTLinqExtensions IO 전용 Validation 오버로드 제거 반영
직전 커밋 d23503b3에서 제거한 IO 전용 오버로드 2개(Validation → FinT<IO, _>, FinT<IO, _> → Validation)를 spec 문서에 반영한다. 영문/한글 두 파일에 동일하게 적용. - SelectMany 표에서 IO 특화 Validation 행 2개 제거 (5 → 3개) - "IO와 Validation 메서드 수 차이" 섹션 갱신: 제네릭 M이 Monad<IO>를 만족하므로 IO 특화가 중복이라는 설명으로 교체
1 parent d23503b commit ae6efea

2 files changed

Lines changed: 6 additions & 10 deletions

File tree

Docs.Site/src/content/docs/ko/spec/05-usecase-cqrs.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -297,9 +297,7 @@ return result.ToFinResponse(() => new DeleteResponse(id));
297297
| `.IO.cs` | `FinT<IO, A>` | `IO<B>` | `FinT<IO, C>` | FinT 체인 중간에 IO 사용 |
298298
| `.Validation.cs` | `Validation<Error, A>` | `FinT<M, B>` | `FinT<M, C>` | Validation → FinT (제네릭) |
299299
| `.Validation.cs` | `Validation<Error, A>` | `B` (Map) | `FinT<M, B>` | Validation → FinT 단순 변환 |
300-
| `.Validation.cs` | `Validation<Error, A>` | `FinT<IO, B>` | `FinT<IO, C>` | Validation → FinT (IO 특화) |
301300
| `.Validation.cs` | `FinT<M, A>` | `Validation<Error, B>` | `FinT<M, C>` | FinT 체인 중간에 Validation 사용 |
302-
| `.Validation.cs` | `FinT<IO, A>` | `Validation<Error, B>` | `FinT<IO, C>` | FinT 체인 중간에 Validation (IO) |
303301

304302
### Filter 확장 메서드
305303

@@ -347,10 +345,10 @@ FinT<IO, Response> response =
347345
| 방향 | IO.cs | Validation.cs |
348346
|------|-------|---------------|
349347
| Source → FinT (Map) | IO 전용 | 제네릭 M |
350-
| Source → FinT\<M, B\> | IO 전용 | 제네릭 M + IO |
351-
| FinT\<M, A\> → Source | IO 전용 | 제네릭 M + IO |
348+
| Source → FinT\<M, B\> | IO 전용 | 제네릭 M |
349+
| FinT\<M, A\> → Source | IO 전용 | 제네릭 M |
352350

353-
`IO`는 그 자체가 특정 모나드이므로 제네릭 `M` 버전이 불필요합니다. `Validation`은 모나드가 아닌 데이터 타입이므로 어떤 모나드 `M`과도 조합 가능하여 제네릭 `M` 버전과 IO 특화 버전 모두 제공합니다.
351+
`IO`는 그 자체가 특정 모나드이므로 제네릭 `M` 버전이 불필요합니다. `Validation`은 모나드가 아닌 데이터 타입이므로 어떤 모나드 `M`과도 조합 가능합니다. `IO` 역시 `Monad<IO>`를 만족하므로, 제네릭 `M` 오버로드가 타입 추론으로 `FinT<IO, _>` 컨텍스트까지 커버하며 IO 특화 중복 오버로드가 필요하지 않습니다.
354352

355353
### 파일 구조
356354

Docs.Site/src/content/docs/spec/05-usecase-cqrs.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -297,9 +297,7 @@ return result.ToFinResponse(() => new DeleteResponse(id));
297297
| `.IO.cs` | `FinT<IO, A>` | `IO<B>` | `FinT<IO, C>` | Uses IO in the middle of FinT chain |
298298
| `.Validation.cs` | `Validation<Error, A>` | `FinT<M, B>` | `FinT<M, C>` | Validation to FinT (generic) |
299299
| `.Validation.cs` | `Validation<Error, A>` | `B` (Map) | `FinT<M, B>` | Simple Validation to FinT conversion |
300-
| `.Validation.cs` | `Validation<Error, A>` | `FinT<IO, B>` | `FinT<IO, C>` | Validation to FinT (IO specialized) |
301300
| `.Validation.cs` | `FinT<M, A>` | `Validation<Error, B>` | `FinT<M, C>` | Uses Validation in the middle of FinT chain |
302-
| `.Validation.cs` | `FinT<IO, A>` | `Validation<Error, B>` | `FinT<IO, C>` | Uses Validation in FinT chain (IO) |
303301

304302
### Filter Extension Methods
305303

@@ -347,10 +345,10 @@ FinT<IO, Response> response =
347345
| Direction | IO.cs | Validation.cs |
348346
|------|-------|---------------|
349347
| Source → FinT (Map) | IO only | Generic M |
350-
| 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 |
352350

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.
354352

355353
### File Structure
356354

0 commit comments

Comments
 (0)