Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Evidence
- getEvidenceAtHole :: Tracked age SrcSpan -> Tracked age (LHsBinds GhcTc) -> [Evidence]
- mkEvidence :: PredType -> [Evidence]
- evidenceToCoercions :: [Evidence] -> [(CType, CType)]
- evidenceToSubst :: [Evidence] -> TacticState -> TacticState
- evidenceToHypothesis :: Evidence -> Hypothesis CType
- evidenceToThetaType :: [Evidence] -> Set CType
- allEvidenceToSubst :: Set TyVar -> [(Type, Type)] -> TCvSubst
Documentation
Something we've learned about the type environment.
Instances
Show Evidence Source # | |
Generic Evidence Source # | |
type Rep Evidence Source # | |
Defined in Wingman.Judgements.Theta type Rep Evidence = D1 ('MetaData "Evidence" "Wingman.Judgements.Theta" "hls-tactics-plugin-1.6.1.0-H41kd3uDZThIe8qdfZ8zJi" 'False) (C1 ('MetaCons "EqualityOfTypes" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "HasInstance" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PredType))) |
evidenceToCoercions :: [Evidence] -> [(CType, CType)] Source #
Given some Evidence
, get a list of which types are now equal.
evidenceToSubst :: [Evidence] -> TacticState -> TacticState Source #
Update our knowledge of which types are equal.
evidenceToHypothesis :: Evidence -> Hypothesis CType Source #
Get all of the methods that are in scope from this piece of Evidence
.
allEvidenceToSubst :: Set TyVar -> [(Type, Type)] -> TCvSubst Source #
Construct a substitution given a list of types that are equal to one another. This is more subtle than it seems, since there might be several equalities for the same type. We must be careful to push the accumulating substitution through each pair of types before adding their equalities.