这段代码编译得很好:
data None = None { _f :: Int }
type Simpl = Env
type Env = Int
但是,此代码出现错误:
{-# LANGUAGE TemplateHaskell #-}
import Control.Lens
data None = None { _f :: Int }
type Simpl = Env
makeLenses ''None
type Env = Int
错误:
Not in scope: type constructor or class `Env'
makeLenses ''None
我只是在类型声明之间添加了一行。
这是否意味着 TemplateHaskell 代码可以改变类型构造函数的范围?
有谁知道有关此问题的详细信息(或如何避免此问题)?