Hello Simon! Thanks for taking a look. I've attempted to address your Core question by adding a new section to the wiki page: https://ghc.haskell.org/trac/ghc/wiki/Plugins/TypeChecker/RowTypes/Coxswain#SomeLightCoreSnorkeling
Regarding the necessary EvTerms, I haven't thought through that enough to answer. I'll add it to the wiki page. Thanks. -Nick On Fri, Sep 15, 2017 at 7:55 AM Simon Peyton Jones <simo...@microsoft.com> wrote: > Nick > > > > Good work! > > > > You ask some questions about the constraint solver – I hope that the > answer from others have helped. If not, do re-ask. > > > > My main comment is: what does Core look like? I think your answer is “No > change to Core, but there are lots of unsafe coerces littered around”. > But even then I’m not sure. Even > > > > f :: Lacks r “f” => V (Row (r .& (“f” .= Int))) -> V (Row (r .& (“f” .= > Int))) > > f n x = ??? > > > > Somehow in the ??? I have to update field n of a tuple x. How do I do > that? > > > > And I’m also very uncomfortable having Core littered with unsafeCoerces. > I like Core being statically typed. What is the simplest primitive(s) we > could add to Core to make it possible to express this stuff type-safely? > > > > Simon > > > > *From:* ghc-devs [mailto:ghc-devs-boun...@haskell.org] *On Behalf Of *Nicolas > Frisby > *Sent:* 10 September 2017 23:25 > *To:* ghc-devs@haskell.org > *Cc:* Andres Löh <and...@well-typed.com>; Adam Gundry <a...@well-typed.com>; > Richard Eisenberg <goldf...@gmail.com> > *Subject:* A type checker plugin for row types > > > > Hi all. I've been spending my free time for the last couple months on a > type checker plugin for row types. The free time waxes and wanes; sending > an email like this one was my primary goal for the past couple weeks. > > > > At the very least, I hoped this project would let me finally get some > hands on experience with OutsideIn. And I definitely have. But I've also > made more progress than I anticipated, and I think the plugin is starting > to have legs! > > > > I haven't uploaded the code yet to github -- it's not quite ready to > share. But I did do a write up on the dev wiki. > > > > > https://ghc.haskell.org/trac/ghc/wiki/Plugins/TypeChecker/RowTypes/Coxswain > > > > I would really appreciate and questions, comments, and --- boy, oh boy --- > answers. > > > > I hope to upload within a week or so, and I'll update that wiki page and > reply to this email when I do. > > > > Thanks very much. -Nick > > > > P.S. -- I've CC'd and BCC'd people who I anticipate would be specifically > interested in this (e.g. plugins, row types, etc). Please feel free to > forward to others that come to mind; I know some inboxes abjectly can't > afford default list traffic. > > > > P.P.S. -- One hold up for the upload is: which license? I intend to > release under BSD3, mainly to match GHC since one ideal scenario would > involve being packaged with/integrated into GHC. But my brief recent > research suggests that the Apache license might be more conducive to > eventual widespread adoption. If you'd be willing to advise or even just > refer me to other write ups, please feel free to email me directly or to > start a separate thread on a more appropriate distribution list (CC'ing me, > please). Thanks again. >
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs