Proposal: Partial Type Signatures
Simon Peyton Jones
simonpj at microsoft.com
Thu Mar 13 09:46:16 UTC 2014
| Together with Tom Schrijvers, Frank Piessens and Dominique Devriese, I
| have been working on a proposal for adding *Partial Type Signatures* to
| GHC.
I'm all for this. Yes, if the design and implementation are solid, I'd be happy to add it to the main branch.
Do focus on something with excellent power-to-weight ratio: that is, gives a lot of benefit for a small cost, rather than something that gives 10% more benefit for 200% more cost.
I've annotated the wiki page with some "SLPJ" comments, which you may want to look at.
I'd be happy to have a Skype conversation about the details in due course.
Simon
| -----Original Message-----
| From: ghc-devs [mailto:ghc-devs-bounces at haskell.org] On Behalf Of Thomas
| Winant
| Sent: 12 March 2014 13:36
| To: ghc-devs at haskell.org
| Cc: Tom Schrijvers; Frank Piessens
| Subject: Proposal: Partial Type Signatures
|
| Dear GHC developers,
|
| Together with Tom Schrijvers, Frank Piessens and Dominique Devriese, I
| have been working on a proposal for adding *Partial Type Signatures* to
| GHC. In a partial type signature, annotated types can be mixed with
| inferred types. A type signature is written like before, but can now
| contain wildcards, written as underscores. The types of these wildcards
| or unknown types will be inferred by the type checker, e.g.
|
| foo :: _ -> Bool
| foo x = not x
| -- Inferred: Bool -> Boo
|
| The proposal also includes a form of generalisation which aligns with
| the existing generalisation that GHC does. We have written down a
| motivation (when and how might you use this) and details about the
| design and implementation on the following wiki page:
|
| https://ghc.haskell.org/trac/ghc/wiki/PartialTypeSignatures
|
| We have a (work in progress) implementation [1] of the feature based on
| GHC. It currently implements most of what we propose, but there are some
| remaining important bugs mostly concerning the generalisation. We also
| described our design and presented a formalisation based on the
| OutsideIn(X) formalism in a paper [2] presented at PADL'14.
|
| What we are hoping to get from the people on this list is any of the
| below:
| * Read the design, play with the implementation and tell us any comments
| you may have about the feature, its design and implementation.
| * Opinions on whether this feature might be acceptable in GHC upstream
| at some point (if not, we do not think it's worth developing the
| implementation much further).
| * Perhaps a code review or a discussion with someone more knowledgeable
| about the internals of GHC's type checker about how we might fix the
| remaining problems in our implementation (specifically, we could use
| some help with implementing the generalisation of partial type
| signatures).
| * Feedback on the `Questions and issues' section on the wiki page.
|
|
| Kind regards,
| Thomas Winant
|
| [1]: https://github.com/mrBliss/ghc-head/
| [2]: https://lirias.kuleuven.be/bitstream/123456789/423475/3/paper.pdf
|
|
| Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
| _______________________________________________
| ghc-devs mailing list
| ghc-devs at haskell.org
| http://www.haskell.org/mailman/listinfo/ghc-devs
More information about the ghc-devs
mailing list