단정문만 구현에 추가해서 오버로드 해주는 파생타입이라는걸 생각해봤는데

예를 들어서 EmptyQueue라는 타입을 만든다면 Queue타입에 큐가 비어있다는 단정을 추가하는거지

엄밀하게 따진건 아니지만 직관적으로 생각해서, 이런게 정상적으로 동작하려면 불변이 보장되어야만 하는구나 싶더라고

또는 러스트마냥 소유권을 계속 계속 넘겨간다던가.. 저 말이랑 이 말이 똑같은 말인지는 머리가 나빠서 헷갈리네


함수형 언어를 생각하고 있는 줄 알았는데 정 반대로 러스트같이 명령형이면서도 안전한 언어의 가능성을 본것같아