
To complement what Thomas said: Phabricator currently claims that the
patch is not building, but if I understand Thomas correctly, this is
the consequence of a limitation of the Phabricator builder which is
not treating the haddock part of the patch correctly.
So to reiterate: the partial type signatures patch *should currently
build*, despite what Phabricator says.
Regards
Dominique
2014-10-07 18:07 GMT+02:00 Thomas Winant
Hi,
On 2014-10-03 23:35, Austin Seipp wrote:
.. Here are the major patches on Phabricator still needing review, that I think we'd like to see for 7.10.1:
- D168: Partial type signatures ..
As Austin said, our patch implementing Partial Type Signatures is still up for code review on Phabricator [1]. It is our goal too to get it in 7.10.1, and we will try to do as much as we can to help out with this process.
We'd like it very much if people had a thorough look at it (thanks Richard for the feedback). We're glad to provide additional info (including extra comments in the code), rewrite confusing code, etc.
= Status =
The implementation is nearly complete: * We've integrated support for Holes, i.e. by default, an underscore in a type signature will generate an error message mentioning the inferred type. By enabling -XPartialTypeSignatures, the inferred type is used and the underscore can remain in the type signature. * SPJ's proposed simplifications (over Skype) have been implemented, except for the fact that we still use the annotated constraints for solving, see [2]. * Richard's comments on Phabricator [1] have been addressed in extra commits. * I've rebased the patch against master on Monday. * I've added docstring for most of the new functions I've added. * Some TODOs still remain, I'll summarise the most important ones here. See [3] for a detailed list with examples. * When -XMonoLocalBinds is enabled (implied by -XGADTs and -XTypeFamilies), (some) local bindings without type signature aren't generalised. Partial type signatures should follow this behaviour. This is currently not handled correctly. We have a stopgap solution involving generating an error in mind, but would prefer a real fix. We'd like some help with this. * Partial type signatures are currently ignored for pattern bindings. This bug doesn't seem to be difficult to solve, but requires some debugging. * The following code doesn't type check:
{-# LANGUAGE MonomorphismRestriction, PartialTypeSignatures #-} charlie :: _ => a charlie = 3
Type error: No instance for (Num a) arising from the literal ‘3’. We would like the (Num a) constraint to be inferred (because of the extra-constraint wildcard). * Some smaller things, e.g. improving error messages.
We'll try to fix the remaining TODOs, but help is certainly appreciated and will speed up integrating this patch!
Please have a look at the code and let us know what we can do to help.
Cheers, Thomas Winant
[1]: https://phabricator.haskell.org/D168 [2]: https://ghc.haskell.org/trac/ghc/wiki/PartialTypeSignatures#extra-constraint... [3]: https://ghc.haskell.org/trac/ghc/wiki/PartialTypeSignatures#TODOs
Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs