
#15147: Type checker plugin receives Wanteds that are not completely unflattened -------------------------------------+------------------------------------- Reporter: nfrisby | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.6.1 Component: Compiler (Type | Version: 8.4.1 checker) | Keywords: Resolution: | TypeCheckerPlugins Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by adamgundry): Replying to [comment:11 simonpj]:
The issue here is that the wanteds are now sometimes not fully unflattened, isn't it?
No, the reported issue (in the Description) is that a Given `CFunEqCan` remains. I believe that all Wanted `CFunEqCans` are removed.
Perhaps I'm misunderstanding something, but as the Description shows, the plugin is being called with {{{ [WD] hole{co_a4or} {3}:: (F x_a4o6[tau:2] fsk_a4oc[fsk:0] :: *) ~# (p_a4o2[sk:2] :: *) (CNonCanonical) }}} including the flatten-skolem `fsk_a4oc`. Shouldn't that be unflattened to give {{{ (F x_a4o6[tau:2] (G () ()) :: *) ~# (p_a4o2[sk:2] :: *) }}} aka `(p ~ F x (G () ()))`? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15147#comment:12 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler