Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • GHC GHC
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 5,359
    • Issues 5,359
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 565
    • Merge requests 565
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Glasgow Haskell CompilerGlasgow Haskell Compiler
  • GHCGHC
  • Wiki
  • Plugins
  • type checker

type checker · Changes

Page history
Re-run import authored Mar 29, 2019 by Tobias Dammers's avatar Tobias Dammers
Hide whitespace changes
Inline Side-by-side
plugins/type-checker.md
View page @ cc1a7a6a
......@@ -14,42 +14,47 @@
Add **TypeCheckerPlugins** to the ticket's keywords to include it in these lists.
Open Tickets:
<table><tr><th>[\#9980](https://gitlab.haskell.org//ghc/ghc/issues/9980)</th>
<table><tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/9980">#9980</a></th>
<td>TcS monad is too heavy</td></tr>
<tr><th>[\#10077](https://gitlab.haskell.org//ghc/ghc/issues/10077)</th>
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/10077">#10077</a></th>
<td>Providing type checker plugin on command line results in false cyclic import error</td></tr>
<tr><th>[\#11435](https://gitlab.haskell.org//ghc/ghc/issues/11435)</th>
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11435">#11435</a></th>
<td>Evidence from TC Plugin triggers core-lint warning</td></tr>
<tr><th>[\#11457](https://gitlab.haskell.org//ghc/ghc/issues/11457)</th>
<td>Run type-checker plugins before GHC's solver</td></tr>
<tr><th>[\#12780](https://gitlab.haskell.org//ghc/ghc/issues/12780)</th>
<td>Calling "do nothing" type checker plugin affects type checking when it shouldn't</td></tr>
<tr><th>[\#15147](https://gitlab.haskell.org//ghc/ghc/issues/15147)</th>
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11457">#11457</a></th>
<td>Run type-checker plugins before GHC&apos;s solver</td></tr>
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12780">#12780</a></th>
<td>Calling &quot;do nothing&quot; type checker plugin affects type checking when it shouldn&apos;t</td></tr>
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15147">#15147</a></th>
<td>Type checker plugin receives Wanteds that are not completely unflattened</td></tr>
<tr><th>[\#15248](https://gitlab.haskell.org//ghc/ghc/issues/15248)</th>
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15248">#15248</a></th>
<td>Coercions from plugins cannot be stopped from floating out</td></tr>
<tr><th>[\#15322](https://gitlab.haskell.org//ghc/ghc/issues/15322)</th>
<td>\`KnownNat\` does not imply \`Typeable\` any more when used with plugin</td></tr>
<tr><th>[\#15745](https://gitlab.haskell.org//ghc/ghc/issues/15745)</th>
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15322">#15322</a></th>
<td>`KnownNat` does not imply `Typeable` any more when used with plugin</td></tr>
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15745">#15745</a></th>
<td>Panicking typechecker plugins</td></tr></table>
Closed Tickets:
<table><tr><th>[\#9840](https://gitlab.haskell.org//ghc/ghc/issues/9840)</th>
<table><tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/9840">#9840</a></th>
<td>Permit empty closed type families</td></tr>
<tr><th>[\#10078](https://gitlab.haskell.org//ghc/ghc/issues/10078)</th>
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/10078">#10078</a></th>
<td>tcPluginStop of a type checker plugin is not called if an error occurs</td></tr>
<tr><th>[\#11462](https://gitlab.haskell.org//ghc/ghc/issues/11462)</th>
<td>Use of typechecker plugin erroneously triggers "unbound implicit parameter" error</td></tr>
<tr><th>[\#11525](https://gitlab.haskell.org//ghc/ghc/issues/11525)</th>
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11462">#11462</a></th>
<td>Use of typechecker plugin erroneously triggers &quot;unbound implicit parameter&quot; error</td></tr>
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11525">#11525</a></th>
<td>Using a dummy typechecker plugin causes an ambiguity check error</td></tr>
<tr><th>[\#14691](https://gitlab.haskell.org//ghc/ghc/issues/14691)</th>
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14691">#14691</a></th>
<td>Replace EvTerm with CoreExpr</td></tr>
<tr><th>[\#15633](https://gitlab.haskell.org//ghc/ghc/issues/15633)</th>
<td>Type-checker plugins aren't loaded in GHCi 8.6.1</td></tr></table>
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15633">#15633</a></th>
<td>Type-checker plugins aren&apos;t loaded in GHCi 8.6.1</td></tr></table>
## Motivation
......@@ -360,7 +365,10 @@ Feel free to extend these lists.
Have you tried out this interface? Does it work?
**End Richard**
**Adam:**
**Adam:**
- At the moment, `solve` doesn't explicitly modify the custom state because I suspect that threading the returned values through the `TcS` pipeline might be tricky, and that plugins wanting this can use `IORef`s instead. Actually, I wonder if instead of using an existential type variable, `tcPlugin` should return subsume `init` and return a `TcM (Maybe TcPlugin)`; then any state can be stored in a closure.
- I expect most plugins to work on equality constraints of a particular kind, or typeclass constraints for a fixed typeclass, but I don't see an obvious way to specify such domains. As you say, I think it should be easy for the plugin to filter constraints itself.
......
Clone repository Edit sidebar
  • Adventures in GHC compile times
  • All things layout
  • AndreasK
  • AndreasPK
  • Back End and Run Time System
  • Backpack refactoring
  • Backpack units
  • Brief Guide for Compiling GHC to iOS
  • Building GHC on Windows with Stack protector support (SSP) (using Make)
  • CAFs
  • CafInfo rework
  • Compiling Case Expressions in ghc
  • Compiling Data.Aeson Error
  • Contributing a Patch
  • Core interface section
View All Pages