Indeed, tyConDataCons does the trick. I don't know how to start with the Class (given a name string), but I'm able to use 'mkClsOcc . Unqual' with lookupRdrNameInModuleForPlugins and then lookupTyCon on the resulting name, followed by 'head . tyConDataCons' to get the constructor.
Thanks, Simon! -- Conal On Wed, Mar 23, 2016 at 1:32 AM, Simon Peyton Jones <[email protected]> wrote: > Start with the Class. Use classTyCon to get the TyCon. Use tyConDataCons > to get the data constructor. > > > > Simon > > > > *From:* ghc-devs [mailto:[email protected]] *On Behalf Of *Conal > Elliott > *Sent:* 23 March 2016 00:09 > *To:* [email protected] > *Subject:* lookupRdrNameInModuleForPlugins with constructors > > > > I'm trying to construct a dictionary in a GHC plugin. I'm stuck on finding > the constructor for the dictionary. When I use `-ddump-simpl` on the module > that defines the class, I see "Circat.Rep.C:HasRep". To try finding that > constructor, I say > > > lookupRdrNameInModuleForPlugins hsc_env > > (mkModuleName "Circat.Rep") (mkVarUnqual "C:HasRep") > > However, I keep getting `Nothing` as a result. (Same without the "C:".) > I've also had this same difficulty when looking up constructors for > algebraic data types and when looking up TyCons. For regular value Ids, > lookup succeeds. > > What am I missing? > > Thanks, - Conal >
_______________________________________________ ghc-devs mailing list [email protected] http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
