A type checker plugin for row types

Nicolas Frisby nicolas.frisby at gmail.com
Sat Sep 16 22:00:33 UTC 2017


If you'd like to see how exactly the plugin manipulates constraints, I
suggest using the `summarize` and `trace` options that are discussed here:

https://ghc.haskell.org/trac/ghc/wiki/Plugins/TypeChecker/RowTypes/Coxswain#PluginDebugOptions

Also, the `sculls/Examples.hs` and `sculls/Elm.hs` files contain my only
test cases involving records and variants. Also see `coxswain/test/README`.

I'm kind of spent from rushing towards this "release", so I might be a bit
less productive for a while. But I'll be generally responsive about it if
others are spending time on it.

In particular: any advice for how to share the generated Haddock
documentation without uploading to Hackage/Stackage?

And thanks to all for responding to my questions. I'll have to think harder
about the answers given. At least for Derived constraints, in particular, I
still don't think we have all of the relevant information in one place. For
example, I recalling thinking that I was seeing some Derived constraints
that seemed to arise from the unifier "giving up" on a complicated equality
and emitting a Given equality instead, and nobody mentioned that in their
answers here. I'll try to suss out a repro of that exactly.

Thanks. -Nick

On Sat, Sep 16, 2017 at 2:27 PM Nicolas Frisby <nicolas.frisby at gmail.com>
wrote:

> I've uploaded the code to GitHub.
>
> https://github.com/nfrisby/coxswain
>
> I went with a BSD3 licence.
>
> It's still very much a work in progress, so I only recommend using it for
> experimentation for now.
>
> Thanks. -Nick
>
>
> On Sun, Sep 10, 2017 at 3:24 PM Nicolas Frisby <nicolas.frisby at gmail.com>
> wrote:
>
>> 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.
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20170916/3fe63440/attachment.html>


More information about the ghc-devs mailing list