Files
coollang/docs
coolguyandClaude Opus 5 c073e18b41 thesis: second-class 값 개념으로 use/callable/spawn을 일괄 정리
관통하는 해법 하나로 다섯 항목을 닫는다 — second-class 값의 일반화.

- Capability 전달: use의 탈출을 capture 전면 금지가 아니라 "use의 전염"으로
  해결한다. use 값을 capture한 closure는 그 자체가 use 값이 되고 use 파라미터
  위치로만 전달된다. 저장하는 sink는 일반 fn을 요구하므로 대입이 거부되고,
  판정 정보가 전부 시그니처에 남아 검사는 로컬로 유지된다. 별도의 nonescaping
  개념을 만들지 않아 "한 개념 한 방식"이 지켜진다.
- Affinity 전이를 closure 환경까지 확장: callable은 fn(copyable)과
  affine fn 두 종류이며, affinity는 타입 표기의 일부로 interface hash에
  포함된다. bound method와 partial application도 같은 규칙.
- Effect 다형성: 합집합이 있는 이상 일반 unification이 아니므로 해소를
  pattern unification으로 제한한다. 결정 위치에 단독 등장, 합집합은 결과
  위치 전용이며 분해하지 않음. 역산 시그니처는 작성 단계에서 거부된다.
- Invalidation 순서 정정: 변경 모듈 재검사 → hash 비교 → 달라졌을 때만
  dependents를 큐에 추가. hash 비교가 dependents 재검사보다 앞서야
  "본문만 수정 시 downstream 0건"이 성립한다.
  interface hash의 re-export 입력도 목록이 아니라 해소된 정의 본문으로 정정.
- 동시성: spawn은 primitive가 아니라 TaskScope capability의 메서드다.
  TaskScope는 use-only라 탈출할 수 없고, join/cancel은 handle 소비 관례가
  아니라 scope 구문의 실행 의미로 강제한다. v0가 미소비를 허용하는 이상
  handle 기반 보장은 불가능하기 때문이다. 루트 TaskScope는 main에 주입.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019ZVDeU6KLuUVL3gs18Hm3E
2026-08-30 01:17:49 +09:00
..