<div dir="ltr"><div>I'm now able to look up value identifiers, type constructors (including classes), and regular data constructors, but not dictionary constructors. Here's my failing effort to look up a dictionary constructor (in CoreM):<br><br>    hasRepThing <-<br>      maybe (panic "HasRep lookup failure") lookupThing =<<<br>        (liftIO $<br>          lookupRdrNameInModuleForPlugins hsc_env (mkModuleName "Circat.Rep")<br>             (Unqual (mkDataOcc "C:HasRep")))<br>    pprTrace "mkReifyEnv HasRep thing:" (ppr hasRepThing) (return ())<br><br>Result:<br><br>    ghc-stage2: panic! (the 'impossible' happened)<br>      (GHC version 8.1.20160307 for x86_64-apple-darwin):<br>            HasRep lookup failure<br><br>Same failure when I use the name string "HasRep" in place of "C:HasRep".<br><br>Any idea what I'm doing wrong here?<br><br></div>-- Conal<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 22, 2016 at 5:40 PM, Conal Elliott <span dir="ltr"><<a href="mailto:conal@conal.net" target="_blank">conal@conal.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Got it. Silly me. Thanks!!  - Conal<br></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 22, 2016 at 5:25 PM, Andrew Farmer <span dir="ltr"><<a href="mailto:xichekolas@gmail.com" target="_blank">xichekolas@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Er, dictionary... sorry, mkDataOccFS<br>
<div><div><br>
On Tue, Mar 22, 2016 at 5:24 PM, Andrew Farmer <<a href="mailto:xichekolas@gmail.com" target="_blank">xichekolas@gmail.com</a>> wrote:<br>
> mkVarUnqual calls mkVarOccFS, which constructs an OccName in the<br>
> varName namespace. You need to construct your RdrName via mkTyVarOcc,<br>
> which picks the Type/Class namespace.<br>
><br>
> On Tue, Mar 22, 2016 at 5:09 PM, Conal Elliott <<a href="mailto:conal@conal.net" target="_blank">conal@conal.net</a>> wrote:<br>
>> I'm trying to construct a dictionary in a GHC plugin. I'm stuck on finding<br>
>> the constructor for the dictionary. When I use `-ddump-simpl` on the module<br>
>> that defines the class, I see "Circat.Rep.C:HasRep". To try finding that<br>
>> constructor, I say<br>
>><br>
>>> lookupRdrNameInModuleForPlugins hsc_env<br>
>>>   (mkModuleName "Circat.Rep") (mkVarUnqual "C:HasRep")<br>
>><br>
>> However, I keep getting `Nothing` as a result. (Same without the "C:".) I've<br>
>> also had this same difficulty when looking up constructors for algebraic<br>
>> data types and when looking up TyCons. For regular value Ids, lookup<br>
>> succeeds.<br>
>><br>
>> What am I missing?<br>
>><br>
>> Thanks, - Conal<br>
>><br>
>> _______________________________________________<br>
>> ghc-devs mailing list<br>
>> <a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
>> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
>><br>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>