Copyright | (C) 2015-2016, University of Twente |
---|---|
License | BSD2 (see the file LICENSE) |
Maintainer | Christiaan Baaij <christiaan.baaij@gmail.com> |
Safe Haskell | None |
Language | Haskell2010 |
Extensions |
|
- newWanted :: CtLoc -> PredType -> TcPluginM CtEvidence
- newGiven :: CtLoc -> PredType -> EvTerm -> TcPluginM CtEvidence
- newDerived :: CtLoc -> PredType -> TcPluginM CtEvidence
- newWantedWithProvenance :: CtEvidence -> PredType -> TcPluginM CtEvidence
- evByFiat :: String -> Type -> Type -> EvTerm
- failWithProvenace :: Ct -> TcPluginM TcPluginResult
- lookupModule :: ModuleName -> FastString -> TcPluginM Module
- lookupName :: Module -> OccName -> TcPluginM Name
- tracePlugin :: String -> TcPlugin -> TcPlugin
Create new constraints
newGiven :: CtLoc -> PredType -> EvTerm -> TcPluginM CtEvidence Source
Create a new [G]iven constraint, with the supplied evidence. This must not
be invoked from tcPluginInit
or tcPluginStop
, or it will panic.
newDerived :: CtLoc -> PredType -> TcPluginM CtEvidence Source
Create a new [D]erived constraint.
newWantedWithProvenance Source
:: CtEvidence | Constraint from which the new wanted is derived |
-> PredType | The type of the new constraint |
-> TcPluginM CtEvidence |
Deprecated: No longer available in GHC 8.0+
Create a new [W]anted constraint that remembers from which wanted constraint it was derived
Creating evidence
:: String | Name the coercion should have |
-> Type | The LHS of the equivalence relation (~) |
-> Type | The RHS of the equivalence relation (~) |
-> EvTerm |
The EvTerm
equivalent for unsafeCoerce
Report contractions
failWithProvenace :: Ct -> TcPluginM TcPluginResult Source
Deprecated: No longer available in GHC 8.0+
Mark the given constraint as insoluble.
If the [W]anted constraint was made by newWantedWithProvenance
, it will
also mark the parent(s) from which the constraint was derived as insoluble.
Even if they were previously assumed to be solved.
Lookup
:: ModuleName | Name of the module |
-> FastString | Name of the package containing the module |
-> TcPluginM Module |
Find a module
Trace state of the plugin
tracePlugin :: String -> TcPlugin -> TcPlugin Source
Print out extra information about the initialisation, stop, and every run
of the plugin when -ddump-tc-trace
is enabled.