2
여기 내 간단한 코드 : 내 유형이 상호 정의를 필요로하지 않는다 "와"때문에이 경우에는 내가하지만,에, 필요하지 않은 것을 알고타입 생성자는 아직 완전히 정의되지 않은
type t1 = [ `A of t2]
and t2 = [ `B | t1 ]
내가 필요한 현실 세계. 왜 작동하지 않습니까? 나는
and t2 = [`B | `C of t1]
을 수행하여 작동 할 수 있지만 지금은 내 다형성 변종의 모든 관심을 잃고 난 그냥 보통의 변종으로 전환 할 수 있습니다.
내가 할 수있는 방법이 있습니까?
나는 그것이 내 질문에 그것을 썼습니다. :) 나는 타입을 확장하고 동의어를 갖는 것의 차이를 이해하지 못합니다. ocaml에 어떤 차이도없는 것처럼 보입니다. –
그리고 나는 왜 그것이 C없이 작동하는지 이해하지 못합니다. –
@double_squeeze이 경우 컴파일러에서 기대하는 바가 있습니까? Ocaml은 [A | B | A의 [B | A 중 ...]]]이 오류가 무한합니다. 'C와 함께하면 [A | B | C의 'a]는'a '로 완벽하게 괜찮습니다. –