피드로 돌아가기
Dev.toBackend
원문 읽기
CLAUDE.md 기반 AI의 Idiomatic Haskell 코드 생성 및 Type-Safety 강제
CLAUDE.md for Haskell: 13 Rules That Make AI Write Idiomatic, Type-Safe Haskell
AI 요약
Context
AI가 생성한 Haskell 코드가 단순 컴파일 통과 수준에 머물러 실제 언어적 특성을 반영하지 못하는 한계 발생. 특히 Partial Function 사용과 추상화 계층 오용으로 인해 런타임 crash 위험이 상존하는 구조적 결함 분석.
Technical Solution
- Partial Function 전면 금지 및 Maybe/Either 기반의 Totality 설계를 통한 런타임 예외 제거
- 모든 Top-level 정의에 Explicit Type Signature를 강제하여 컴파일러 계약 및 문서화 일원화
- newtype 도입을 통한 Primitive Type의 도메인 격리로 Type-level 안전성 확보
- GHC 9.6+ 및 특정 Language Extensions(OverloadedStrings, LambdaCase 등)의 명시적 활성화를 통한 코드 일관성 유지
- Functor $\rightarrow$ Applicative $\rightarrow$ Monad로 이어지는 추상화 계층의 최소 권한 원칙 적용
- -Wincomplete-patterns 옵션 강제를 통한 Exhaustive Pattern Matching 기반의 컴파일 타임 오류 포착
실천 포인트
- 프로젝트 루트에 CLAUDE.md를 배치하여 AI의 코딩 규칙을 동기화함 - head, tail, fromJust 등 Partial Function을 사용하지 않고 Total Function으로 대체함 - type alias 대신 newtype을 사용하여 도메인 모델의 Type Safety를 강화함 - Monad보다 하위 추상화(Functor, Applicative)를 우선 검토하여 복잡도를 낮춤 - 모든 모듈에 Explicit Export List를 작성하여 API Surface를 제어함