[GHC] #15147: Type checker plugin receives Wanteds that are not completely unflattened
Nicolas Frisby
nicolas.frisby at gmail.com
Tue Jun 12 02:38:46 UTC 2018
Whoops, I replied via email instead of commenting on the ticket. I've done
so now. Sorry for the mailing list noise.
On Mon, Jun 11, 2018, 08:21 Nicolas Frisby <nicolas.frisby at gmail.com> wrote:
> That way of saying it clarifies the expectations for me. And doesn't seem
> too burdensome for the plugin author.
>
> Thus I think this ticket could be resolved by updating the documentation.
> (Though I still would like for a plugin to be able to request the flattened
> Wanteds. Separate ticket?)
>
> In particular this sentence in the User Guide
>
> "[The plugin] will be invoked at two points in the constraint solving
> process: after simplification of given constraints, and after unflattening
> of wanted constraints."
>
> would benefit from some elaboration. Specifically, "unflattening of wanted
> constraints" is somewhat ambiguous: until you spelled it out, I was
> thinking that if a constraint is flattened, it doesn't have any flattening
> variables in it. However, I'm inferring here that the jargon is used to
> mean that "unflattening a wanted constraint" only eliminates fmvs, possibly
> leaving fsks behind? That's what I've been confused about (until now, I
> think). Thanks.
>
>
> On Tue, Jun 5, 2018, 01:48 GHC <ghc-devs at haskell.org> wrote:
>
>> #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 simonpj):
>>
>> > Perhaps I'm misunderstanding something
>>
>> I didn't express it very clearly. As it stands, the Given CFunEqCan's
>> remain, and hence so do the fsks. The Wanted CFunEqCans are removed
>> (currently) along with the fmvs.
>>
>> So yes, currently Wanteds can contain fsks, whose definition is given by
>> a
>> CFunEqCan. I would have thought that most plugins would not find it hard
>> to deal with that.
>>
>> --
>> Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15147#comment:14>
>> GHC <http://www.haskell.org/ghc/>
>> The Glasgow Haskell Compiler
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20180611/ca0add05/attachment.html>
More information about the ghc-devs
mailing list