packages feed

uhc-light-1.1.7.0: 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 60 "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 89 "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 118 "src/ehc/Ty/FIEnv.chs" #-}
instance Show FIEnv where
  show _ = "FIEnv"

{-# LINE 123 "src/ehc/Ty/FIEnv.chs" #-}
instance PP FIEnv where
  pp e = "FIEnv"
         >#< (empty
             >-< pp (feTyGam e)
             )