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)?