liquidhaskell-0.8.10.1: Liquid Types for Haskell
Safe HaskellNone
LanguageHaskell98

Language.Haskell.Liquid.GHC.Types

Synopsis

Documentation

newtype StableName #

A StableName is virtually isomorphic to a GHC's Name but crucially we don't use the Eq instance defined on a Name because it's Unique-based. In particular, GHC doesn't guarantee that if we load an interface multiple times we would get the same Unique for the same Name, and this is a problem when we rely on Names to be the same when we call isExportedVar, which used to use a NameSet derived from the '[AvailInfo]'. As the name implies, a NameSet uses a Names Unique for duplicate detection and indexing, and this would lead to Vars being resolved to a Name which is basically the same, but it has a different Unique, and that would cause the lookup inside the NameSet to fail.

Constructors

MkStableName 

Fields

Instances

Instances details
Eq StableName # 
Instance details

Defined in Language.Haskell.Liquid.GHC.Types

Show StableName # 
Instance details

Defined in Language.Haskell.Liquid.GHC.Types

Generic StableName # 
Instance details

Defined in Language.Haskell.Liquid.GHC.Types

Associated Types

type Rep StableName :: Type -> Type #

Hashable StableName # 
Instance details

Defined in Language.Haskell.Liquid.GHC.Types

type Rep StableName # 
Instance details

Defined in Language.Haskell.Liquid.GHC.Types

type Rep StableName = D1 ('MetaData "StableName" "Language.Haskell.Liquid.GHC.Types" "liquidhaskell-0.8.10.1-inplace" 'True) (C1 ('MetaCons "MkStableName" 'PrefixI 'True) (S1 ('MetaSel ('Just "unStableName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)))

mkStableName :: Name -> StableName #

Creates a new StableName out of a Name.

availsToStableNameSet :: [AvailInfo] -> HashSet StableName #

Converts a list of AvailInfo into a "StableNameSet", similarly to what availsToNameSet would do.

data MGIModGuts #

Datatype For Holding GHC ModGuts ------------------------------------------