Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data FlattenEnv = FE {
- fe_mode :: FlattenMode
- fe_loc :: CtLoc
- fe_flavour :: CtFlavour
- fe_eq_rel :: EqRel
- data FlattenMode
- mkFlattenEnv :: FlattenMode -> CtEvidence -> FlattenEnv
- flatten :: FlattenMode -> CtEvidence -> TcType -> TcS (Xi, TcCoercion)
- flattenMany :: FlattenMode -> CtEvidence -> [Role] -> [TcType] -> TcS ([Xi], [TcCoercion])
- flatten_many :: FlattenEnv -> [Role] -> [Type] -> TcS ([Xi], [TcCoercion])
- flattenFamApp :: FlattenMode -> CtEvidence -> TyCon -> [TcType] -> TcS (Xi, TcCoercion)
- flattenTyVarOuter :: FlattenEnv -> TcTyVar -> TcS (Either TyVar (TcType, TcCoercion))
- unflatten :: Cts -> Cts -> TcS Cts
- eqCanRewrite :: CtEvidence -> CtEvidence -> Bool
- eqCanRewriteFR :: CtFlavourRole -> CtFlavourRole -> Bool
- canRewriteOrSame :: CtEvidence -> CtEvidence -> Bool
- type CtFlavourRole = (CtFlavour, EqRel)
- ctEvFlavourRole :: CtEvidence -> CtFlavourRole
- ctFlavourRole :: Ct -> CtFlavourRole
Documentation
data FlattenEnv Source
FE | |
|
mkFlattenEnv :: FlattenMode -> CtEvidence -> FlattenEnv Source
flatten :: FlattenMode -> CtEvidence -> TcType -> TcS (Xi, TcCoercion) Source
flattenMany :: FlattenMode -> CtEvidence -> [Role] -> [TcType] -> TcS ([Xi], [TcCoercion]) Source
flatten_many :: FlattenEnv -> [Role] -> [Type] -> TcS ([Xi], [TcCoercion]) Source
flattenFamApp :: FlattenMode -> CtEvidence -> TyCon -> [TcType] -> TcS (Xi, TcCoercion) Source
flattenTyVarOuter :: FlattenEnv -> TcTyVar -> TcS (Either TyVar (TcType, TcCoercion)) Source
eqCanRewrite :: CtEvidence -> CtEvidence -> Bool Source
eqCanRewriteFR :: CtFlavourRole -> CtFlavourRole -> Bool Source
canRewriteOrSame :: CtEvidence -> CtEvidence -> Bool Source
type CtFlavourRole = (CtFlavour, EqRel) Source
Whether or not one Ct
can rewrite another is determined by its
flavour and its equality relation
ctEvFlavourRole :: CtEvidence -> CtFlavourRole Source
Extract the flavour and role from a CtEvidence
ctFlavourRole :: Ct -> CtFlavourRole Source
Extract the flavour and role from a Ct