如何在Haskell图中使用光线跟踪

时间:2019-07-28 21:51:18

标签: haskell-diagrams

代码

rayTraceP (p2 (0, 0)) (r2 (1, 0)) (circle 1)

导致错误消息

 Could not deduce: V a0 ~ V2
      from the context: (Traced a, TrailLike a, Transformable a,
                         V a ~ V2)
        bound by the inferred type for ‘it’:
                   forall a.
                   (Traced a, TrailLike a, Transformable a, V a ~ V2) =>
                   Maybe (Point (V a) (N a))
        at <interactive>:1:1-44
      The type variable ‘a0’ is ambiguous

我不知道为什么会这样。似乎manual中也使用rayTraceP。 我使用diagrams-cairo-1.4.1。

1 个答案:

答案 0 :(得分:0)

这种错误通常是由类型推断过程中类型不明确引起的,可以通过添加一个或多个类型签名来解决。在这种情况下,我认为问题很可能是无法弄清楚“第1圈”调用应具有的类型。如果显示所有代码,我可以为在何处添加类型签名提供更好的建议。

有关更多信息,请参见用户手册第5.5节:https://diagrams.github.io/doc/manual.html#tips-and-tricks