모노이드
하스켈에서 타입클래스는 공통적인 어떤 행위들을 가진 타입의 인터페이스를 표현하는데 사용됩니다. 지금까지 우리는 동일한 값인지 비교하는 타입들을 위한 Eq
, 순서를 가진 타입의 Ord
에서부터 좀 더 복잡한 행위들을 정의한 Functor
나 Applicative
타입클래스까지 다루었습니다.
타입을 만들때는 어떤한 행위들을 지원할지를 생각합니다. 타입이 어떤 동작을 할 수 있느냐에 따라서 어떤 타입클래스의 인스턴스로 만들지를 결정합니다. 예를들어 타입의 값들이 같은지 비교하려면, Eq
타입클래스의 인스턴스가 되야 합니다. 타입이 어떤 펑터의 일종이라면 Functor
의 인스턴스가 되어야 합니다.