Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
GHC.Tc.Errors.Hole.FitTypes
Synopsis
- data TypedHole = TypedHole {}
- data HoleFit
- data HoleFitCandidate
- type CandPlugin = TypedHole -> [HoleFitCandidate] -> TcM [HoleFitCandidate]
- type FitPlugin = TypedHole -> [HoleFit] -> TcM [HoleFit]
- data HoleFitPlugin = HoleFitPlugin {}
- data HoleFitPluginR = forall s.HoleFitPluginR {
- hfPluginInit :: TcM (TcRef s)
- hfPluginRun :: TcRef s -> HoleFitPlugin
- hfPluginStop :: TcRef s -> TcM ()
- hfIsLcl :: HoleFit -> Bool
- pprHoleFitCand :: HoleFitCandidate -> SDoc
Documentation
Constructors
TypedHole | |
Fields
|
Instances
HoleFit is the type we use for valid hole fits. It contains the
element that was checked, the Id of that element as found by tcLookup
,
and the refinement level of the fit, which is the number of extra argument
holes that this fit uses (e.g. if hfRefLvl is 2, the fit is for `Id _ _`).
Constructors
HoleFit | |
Fields
| |
RawHoleFit SDoc | A fit that is just displayed as is. Here so thatHoleFitPlugins can inject any fit they want. |
data HoleFitCandidate Source #
HoleFitCandidates are passed to hole fit plugins and then checked whether they fit a given typed-hole.
Constructors
IdHFCand Id | |
NameHFCand Name | |
GreHFCand GlobalRdrElt |
Instances
type CandPlugin = TypedHole -> [HoleFitCandidate] -> TcM [HoleFitCandidate] Source #
A plugin for modifying the candidate hole fits *before* they're checked.
type FitPlugin = TypedHole -> [HoleFit] -> TcM [HoleFit] Source #
A plugin for modifying hole fits *after* they've been found.
data HoleFitPlugin Source #
A HoleFitPlugin is a pair of candidate and fit plugins.
Constructors
HoleFitPlugin | |
Fields |
data HoleFitPluginR Source #
HoleFitPluginR adds a TcRef to hole fit plugins so that plugins can track internal state. Note the existential quantification, ensuring that the state cannot be modified from outside the plugin.
Constructors
forall s. HoleFitPluginR | |
Fields
|