러스트 메모리 관리의 핵심은 affine type 인데 이건 절차형/저수준과는 별 관계 없는 개념이잖아


그럼 타입 정의에 ⊗, ⅋ 같은 준구조 연결사를 허용하면 (t : A -> B), (s : A) ==> (t s : B) 같은 타이핑 규칙만으로도 소유와 이전에 대한 개념을 표현하고 함수형 언어로도 러스트 같은 방식의 메모리 관리를 할 수 있는 것 아닌가?


그리고 이렇게 타입 시그니쳐에 모든 정보가 명시되면 컴파일 에러가 떠도 어디가 문제인지 더 알기 쉬울 것 같음. 어떤 조합이 허용되고 어떤게 안 되는지 syntactic하게 딱딱 나누어 떨어지니까. 물론 러스트가 목표로 하는 시스템 프로그래밍은 무리겠지만 하스켈처럼 코딩하면서 GC 없는 메모리 관리가 따라온다는 것만으로도 범용 프로그래밍에는 충분히 쓸만하지 않을까


찾아보면 Clean 이나 ATS 같은게 있긴 있는데 다 하꼬 언어들이라 실사용에 뭔가 문제가 있는지 궁금. 준구조 타입이랑 일반 타입을 섞는게 많이 어렵나?