Haskell: modelo Haskell e o escopo
Este código é bem compilado:
data None = None { _f :: Int }
type Simpl = Env
type Env = Int
No entanto, recebi um erro com este código:
{-# LANGUAGE TemplateHaskell #-}
import Control.Lens
data None = None { _f :: Int }
type Simpl = Env
makeLenses ''None
type Env = Int
Erro:
Not in scope: type constructor or class `Env'
Acabei de adicionar uma única linhamakeLenses ''None
entre declarações de tipo.
Isso significa que o código TemplateHaskell pode alterar o escopo do tipo construtor?
Alguém sabe os detalhes sobre esse problema (ou como evitar esse problema)?