| 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 |
|
GHC.TcPluginM.Extra
Description
- 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
Arguments
| :: 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
Arguments
| :: 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
Arguments
| :: 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.