ここに私の簡略化されたコードがあります:
type t1 = [ `A of t2]
and t2 = [ `B | t1 ]
この場合、私のタイプは相互定義を必要としないため、「and」は必要ありませんが、現実の世界ではそれが必要です。なぜそれがうまくいかないのですか?私はそれを動作させることができます
and t2 = [`B | `C of t1]
しかし今では、ポリモーフィック バリアントのすべての興味を失い、通常のバリアントに切り替えるだけです。
これを行う方法はありますか?