Haskell: Szablon Haskell i zakres

Ten kod jest dobrze skompilowany:

data None = None { _f :: Int }
type Simpl = Env

type Env = Int

Jednak ten kod zawiera błąd:

{-# LANGUAGE TemplateHaskell #-}
import Control.Lens

data None = None { _f :: Int }

type Simpl = Env

makeLenses ''None

type Env = Int

Błąd:

Not in scope: type constructor or class `Env'

Właśnie dodałem pojedynczy wierszmakeLenses ''None między deklaracjami typu.
Oznacza to, że kod TemplateHaskell może zmienić zakres konstruktora typu?

Czy ktoś zna szczegóły dotyczące tego problemu (lub jak uniknąć tego problemu)?

questionAnswers(1)

yourAnswerToTheQuestion