任何人都可以说明为什么这段代码没有编译
data A = A {
_b :: B
}
makeLenses ''A
type B = String
带有消息
Not in scope: type constructor or class B
这样做:
type B = String
data A = A {
_b :: B
}
makeLenses ''A
没有makeLenses
,一切都很好。
为什么我不能在makeLenses之后输入synonim声明?
答案 0 :(得分:8)
只有模板haskell调用之前的定义才能在范围内访问。
在同一主题上查看此前一个问题:Haskell: Template Haskell and the scope。