특정 범위에 바인딩 된 새로운 정수 형식을 만들고 싶습니다. 나는 시도했다 :특정 범위 내에서 제한된 형식을 만드는 방법
data PitchClass = PC Int deriving (Ord, Eq, Show)
instance Bounded PitchClass where
minBound = PC 0
maxBound = PC 11
그러나, 내가 원하는 것을
PC 12
처럼 또는
PC (-1)
을 시도하면 실패합니다 무언가이다.
값 생성자가 모듈에서 내보내지지 않고 대신 형식의 인스턴스를 반환하고 제약 조건 검사를 수행하는 새 형식을 만드는 데 제약 조건을 적용하려는 일반적인 방법이 있습니까? 내 보낸거야?