-
Notifications
You must be signed in to change notification settings - Fork 571
Description
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:
- Add proxies #2846
- Fixing some issues with proxies #3095
- Print proxy type as an operator #3124
- pretty print proxy types when rendering docs #3144
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