이 질문은 "더 나은"이라는 주관적인 정의에 의존하기 때문에 다소 문제가 있습니다.
Agda , Idris 및 Coq 와 같은 종속 유형 언어 는 Haskell보다 강력한 유형 시스템을 갖습니다. 즉, 이러한 언어의 유형을 사용하여 Haskell보다 코드에 대해 더 많은 속성을 엄격하게 증명할 수 있습니다. 즉, 더 잘못된 프로그램이 잡힐 수 있습니다.
그러나 이것은 가격에 따른다 : 타입 추론과 주어진 타입의 값이 존재하는지 테스트하는 것은 더 이상 가능하지 않다. 즉, 이러한 언어의 경우 코드에 명시 적으로 주석을 달아야합니다. 본질적으로 이것은 코드에 대한 자신의 정확성 증명을 작성하는 것으로 요약됩니다.
이 언어들은 하스켈보다 "더 나은"언어입니까? 코드에 대한 고급 정확성 증명을 확인할 수 있지만 Haskell이 할 수있는 방식으로 코드 속성을 자동으로 증명할 수는 없습니다.
Haskell보다 "더 나은"다른 연구 언어는 LiquidHaskell입니다 입니다. 이것은 기본적으로 특수 주석에서 파싱 된 정제 유형이 맨 위에 고정 된 Haskell입니다.
구체화 유형을 사용하면 속성이있는 유형을 구체화 할 수 있습니다. 예를 들어을 사용하는 대신 모든 양의 정수 유형을 Int
지정 {i : Int | i > 0}
하여을 지정할 수 있습니다 . 구체화 유형을 사용하여 유형 유추를 결정할 수 있지만 종속 유형을 사용하는 경우와 마찬가지로 정확도 특성을 거의 입증 할 수는 없습니다.
다른 정제 유형 시스템이 있지만 그중 어느 것에도 익숙하지 않습니다.