Tentative high-level plans for 7.10.1
Thomas Winant
Thomas.Winant at cs.kuleuven.be
Tue Oct 7 16:07:15 UTC 2014
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-constraints-wildcard
[3]: https://ghc.haskell.org/trac/ghc/wiki/PartialTypeSignatures#TODOs
Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
More information about the ghc-devs
mailing list