module GHC.Unit.Module.ModDetails
   ( ModDetails (..)
   , emptyModDetails
   )
where
import GHC.Core         ( CoreRule )
import GHC.Core.FamInstEnv
import GHC.Core.InstEnv ( InstEnv, emptyInstEnv )
import GHC.Types.Avail
import GHC.Types.CompleteMatch
import GHC.Types.TypeEnv
import GHC.Types.Annotations ( Annotation )
data ModDetails = ModDetails
   { 
     ModDetails -> [AvailInfo]
md_exports   :: [AvailInfo]
   , ModDetails -> TypeEnv
md_types     :: !TypeEnv
      
      
   , ModDetails -> InstEnv
md_insts     :: InstEnv
      
   , ModDetails -> [FamInst]
md_fam_insts :: ![FamInst]
   , ModDetails -> [CoreRule]
md_rules     :: ![CoreRule]
      
   , ModDetails -> [Annotation]
md_anns      :: ![Annotation]
      
      
   , ModDetails -> [CompleteMatch]
md_complete_matches :: [CompleteMatch]
      
   }
emptyModDetails :: ModDetails
emptyModDetails :: ModDetails
emptyModDetails = ModDetails
   { md_types :: TypeEnv
md_types            = TypeEnv
emptyTypeEnv
   , md_exports :: [AvailInfo]
md_exports          = []
   , md_insts :: InstEnv
md_insts            = InstEnv
emptyInstEnv
   , md_rules :: [CoreRule]
md_rules            = []
   , md_fam_insts :: [FamInst]
md_fam_insts        = []
   , md_anns :: [Annotation]
md_anns             = []
   , md_complete_matches :: [CompleteMatch]
md_complete_matches = []
   }