module UHC.Light.Compiler.Ty.FIEnv ( FIEnv (..) , emptyFE ) where import UHC.Light.Compiler.Base.Common import UHC.Light.Compiler.Opts import qualified Data.Set as Set import UHC.Light.Compiler.Gam import UHC.Light.Compiler.Gam.AppSpineGam import UHC.Util.Pretty import UHC.Light.Compiler.VarMp import UHC.Light.Compiler.AbstractCore import UHC.Light.Compiler.Ty import UHC.Util.Utils import UHC.Light.Compiler.Gam.TyGam import UHC.Light.Compiler.Gam.PolGam import UHC.Light.Compiler.Gam.DataGam {-# LINE 58 "src/ehc/Ty/FIEnv.chs" #-} data FIEnv = FIEnv { feAppSpineGam :: !AppSpineGam -- ty app spine info , feEHCOpts :: !EHCOpts -- compiler options , feDontBind :: !TyVarIdS -- inhibit type var binding for ... , fePredScope :: !PredScope -- the scope used by predicate resolution , feTyGam :: !TyGam -- type environment, for type synonym expansion , fePolGam :: !PolGam -- polarity environment, for co/contra variance , feDataGam :: !DataGam -- datatype info, for tycore generation, for coercions , feRange :: !Range -- position of source code from where subsumption is invoked } {-# LINE 84 "src/ehc/Ty/FIEnv.chs" #-} emptyFE = FIEnv { feAppSpineGam = emptyGam , feEHCOpts = defaultEHCOpts , feDontBind = Set.empty , fePredScope = initPredScope , feTyGam = emptyGam , fePolGam = emptyGam , feDataGam = emptyGam , feRange = emptyRange } {-# LINE 110 "src/ehc/Ty/FIEnv.chs" #-} instance Show FIEnv where show _ = "FIEnv" {-# LINE 115 "src/ehc/Ty/FIEnv.chs" #-} instance PP FIEnv where pp e = "FIEnv" >#< (empty >-< pp (feTyGam e) )