Tentative high-level plans for 7.10.1

Thomas Winant Thomas.Winant at cs.kuleuven.be
Tue Oct 7 16:07:15 UTC 2014


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

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
* 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
   * 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.

Thomas Winant

[1]: https://phabricator.haskell.org/D168
[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