Simplifying Type-level Programming by Booleanizing Inductive Types

귀납적 자료형의 이진화를 이용한 타입 레벨 프로그래밍 간소화

  • Cha, Ree-Seo (Dept. of Computer Science and Engineering, Korea university) ;
  • Choi, Jin-Young (Dept. of Computer Science and Engineering, Korea university)
  • Published : 2006.10.20

Abstract

Dependent type은 유리수, 리스트 함수, 행렬 곱 등 여러 가지 타입들의 제약 사항들을 충실히 표현하는 데에 필수적이기 때문에 이를 지원하는 타입 시스템을 탑재한 언어를 새로 개발하거나 기존 언어의 다른 특성들을 활용하여 이를 모의(simulate)하려는 시도가 다각도로 진행되고있으며, Haskell 타입 레벨 프로그래밍도 이런 모의 기법 중 하나다. 기존 타입 레벨 프로그래밍은 변별력의 손실이 없는 대신 이로 인해 관련 함수들의 타입이 복잡해지거나 확정하기 어려워지는 경우가 많아서 잘못된 프로그램을 작성할 위험 부담이 커진다. 실제로 dependent type이 필요한 경우들 중에는 매우 간단한 변별력만을 요구하는 경우가 많으므로, 귀납적 자료형을 이진 추상화하여 일부 변별력을 포기하는 대신 상대적으로 간단하게 dependent type과 관련 함수들의 타입을 확정하는 간소화된 타입 레벨 프로그래밍 기법을 제안한다.

Keywords