Concurrent Clean : CleanJ : .record d

.record命令の d の扱いが間違っているのかもしれない。
Genericの方は置いておいて、.recordの d だけのテストを作って調査する必要があるかも。

      • -

d の扱いは問題ないみたい。次のテストコードで確認。

:: R a = A a (R a)
       | B a !a !Int

Start = (r1, dep r1 ,r2, dep r2)
  where
    r1 = A 'a' (B 'a' 'b' 1)
    r2 = B 1.0 1.1 2

dep :: (R a) -> Int
dep (A _ r) = 1 + dep r
dep (B _ _ i) = i