{-# LANGUAGE TemplateHaskell #-}

module UHC.Light.Compiler.CodeGen.CEnv
( CEnv (..), emptyCEnv
, cenvDataGam
, cenvLamMp )
where
import Data.Typeable
import UHC.Util.Lens
import UHC.Light.Compiler.Gam
import UHC.Light.Compiler.Gam.DataGam
import UHC.Light.Compiler.LamInfo



{-# LINE 31 "src/ehc/CodeGen/CEnv.chs" #-}
data CEnv
  = CEnv
      { _cenvDataGam         :: DataGam			-- info about datatypes
      											-- 20151009 AD: TBD, for now non strict field
      , _cenvLamMp         	 :: LamMp			-- info about functions
      											-- 20151009 AD: TBD, for now non strict field
      -- , _cenvOptim       	 :: !Optim			-- inter module optimisation info
      											-- 20151009 AD: TBD, for now non strict field
      }
  deriving (Typeable)

emptyCEnv =
  CEnv emptyGam
       emptyLamMp
       -- defaultOptim

{-# LINE 57 "src/ehc/CodeGen/CEnv.chs" #-}
mkLabel ''CEnv