uhc-light-1.1.9.3: src/UHC/Light/Compiler/Ty/FIEnv.hs
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)
)