
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
Start with the Class. Use classTyCon to get the TyCon. Use tyConDataCons to get the data constructor.
Simon
*From:* ghc-devs [mailto:ghc-devs-bounces@haskell.org] *On Behalf Of *Conal Elliott *Sent:* 23 March 2016 00:09 *To:* ghc-devs@haskell.org *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