We just don't know how to start - ie how call the right functions from the type 
checker. Are there any resources explaining the relevant subset of the TcRnIf 
API?
And I for my part don't know where to start helping you!  Conal wrote

I don't think I need to construct dictionaries for new Typeable instances. I 
only need to find and assemble *existing* Typeable instances into combinations 
like Typeable [(Bool,Int -> String)], and I don't know how to do so in a GHC 
plug-in

That's exactly what the constraint solver does.  (TcSimplify and friends.)  But 
again I need more context.

I gather you are talking to Pedro too?  He knows a lot about this stuff.

Also there are a bunch of folk (Luite, Edsko) worked on the new front-end 
plugin stuff, and are much more expert in it than me.

We could have a skype call if that would help

S


From: Nicolas Frisby [mailto:nicolas.fri...@gmail.com]
Sent: 05 November 2013 14:36
To: Simon Peyton-Jones
Cc: ghc-devs@haskell.org; Conal Elliott
Subject: RE: Finding & assembling class dictionaries from GHC plugins?


On Nov 5, 2013 3:14 AM, "Simon Peyton-Jones" 
<simo...@microsoft.com<mailto:simo...@microsoft.com>> wrote:

>
> A core-level plug-in can't generate fresh instances.  There are some new 
> plug-in hooks that fit earlier in the pipeline, which can.  Maybe you can use 
> that, and generate a data type decl with "deriving Typeable"?

We're willing to do some awkward shoehorning in HERMIT to make this work in 
limited circumstances. (Hopefully including Conal's.)

We just don't know how to start - ie how call the right functions from the type 
checker. Are there any resources explaining the relevant subset of the TcRnIf 
API?

Thanks.

>
>
> From: ghc-devs 
> [mailto:ghc-devs-boun...@haskell.org<mailto:ghc-devs-boun...@haskell.org>] On 
> Behalf Of Conal Elliott
> Sent: 04 November 2013 20:08
> To: ghc-devs@haskell.org<mailto:ghc-devs@haskell.org>
> Subject: Finding & assembling class dictionaries from GHC plugins?
>
>
>
> I'm working on a GHC plugin (for compiling Haskell to hardware), and I need 
> to synthesize Typeable (and maybe other) class dictionaries for a wide range 
> of types, including composite types (functions, pairs, lists, etc). Can it be 
> done, and how? I think I'm mainly looking for mechanics of finding existing 
> class instances (however they're defined) and assembling them (for 
> parametrized/composite dictionaries), rather than mechanisms specific to 
> Typeable.
>
> Thanks, -- Conal
>
>
> _______________________________________________
> ghc-devs mailing list
> ghc-devs@haskell.org<mailto:ghc-devs@haskell.org>
> http://www.haskell.org/mailman/listinfo/ghc-devs
>
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs

Reply via email to