with 기반 효과 표기법
효과(effect) 개념을 기반으로 한 새로운 표기법을 제안하며, Rust 언어에 내장된 효과들을 더 일관되고 확장 가능하게 다루기 위한 방안을 설명합니다.
with-절과 블록을 활용한 표기법은 함수, 클로저, 블록, 메서드 등 다양한 코드 단위에 효과를 명확히 지정할 수 있게 하며, 여러 효과를 조합하거나 별칭으로 관리하는 것도 지원합니다.
효과 제네릭(eff generic)을 도입하여 함수나 타입이 효과를 타입 변수처럼 일반화할 수 있게 하며, 효과 간의 합집합, 배타성, 제외 조건 등 복잡한 효과 대수 연산도 표현할 수 있도록 설계되었습니다.
함수 본문에서는 .do 키워드를 통해 효과 전파를 추상화하고, 기존의 .await, ?, yield 같은 효과별 조작을 통합적으로 다룰 수 있게 하여 코드의 일관성과 가독성을 높입니다.
또한, 기본적으로 모든 함수가 무효과(total) 상태임을 가정하고, 모듈이나 파일 단위로 효과를 일괄 지정하는 스코프 기반 효과 지정 방식을 제안하여, 점진적 도입과 기존 코드와의 호환성을 고려한 실용적 전환 경로를 제시합니다.