Skip to content

Proxy syntax / plans for 0.12 #3178

@hdgarrood

Description

@hdgarrood

Currently I think it's not entirely clear what the plans are for 0.12, and what the difference between the 0.12.0-dev and master branches is. I'm opening this issue to try to resolve this. There's been a bit of discussion on Slack already but issues are easier to refer back to in the future, which is why I'm creating one here.

The new proxy syntax presents issues because of the kind unification bug/bugs mentioned in #3075 and #3077 (note: #3077 exists in 0.11.7 too, but the issue is much harder to run into accidentally without proxy syntax). Additionally, it sounds like fixing this kind unification bug might take us some (most?) of the way towards polykinds, but of course if we have polykinds there's less of a reason to have special proxy syntax, since we can define a polykinded Proxy type; the only benefit of the proxy syntax is then that you can use proxies with less noise (@"foo" vs Proxy :: Proxy "foo").

Setting the kind unification bug aside for a moment, I think it's probably also worth resolving the original issue in #3075 one way or another before we make a release which includes the proxy syntax, so that we don't later need to make a possibly-breaking change to make proxies comfortable to use.

I think the effort/value ratio of resolving these issues is probably quite high, so I think it might be worth considering reverting the proxy-related PRs for now to avoid blocking a 0.12.0 release, namely:

We could then delete the 0.12.0-dev branch and continue working towards a 0.12 release on the master branch.

What do people think about this? /cc @rightfold

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions