Building dictionary terms in Core?

Hi, In #15646 (recent discussion in Gitlab MR 55) we need dictionary arguments in Core (in desugarer) to apply to functions like `fromRational :: Fractional a => Rational -> a`, but we don't know how to build the dictionary term (`Fractional a`) in Core. Can anyone who know help us in the MR? Thanks, Ömer

Hi Ömer, I cannot answer you precisely, but when I was working on my type-checker plugin, I used functions `classTyCon` and `tyConSingleDataCon`, https://github.com/phadej/kleene-type/blob/cb7332b98ae229e162c12186fd4d7fccb...; i.e. shouldn't be much different than constructing a record. Hopefully those help you find out the right functions. - Oleg On 7.1.2019 8.56, Ömer Sinan Ağacan wrote:
Hi,
In #15646 (recent discussion in Gitlab MR 55) we need dictionary arguments in Core (in desugarer) to apply to functions like `fromRational :: Fractional a => Rational -> a`, but we don't know how to build the dictionary term (`Fractional a`) in Core. Can anyone who know help us in the MR?
Thanks,
Ömer _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

I'm on a train, so unable to dig deep.
The standard thing to do is to build the dictionary in the type checker, and leave it in the syntax tree for the desugarer to use.
The ticket and MR discussion have grown long. Is there an up-do-date stand-alone description of the currently-proposed design than one can read instead of doing (foldr add-comments empty all-comments)?
Thanks
Simon
| -----Original Message-----
| From: ghc-devs
participants (3)
-
Oleg Grenrus
-
Simon Peyton Jones
-
Ömer Sinan Ağacan