Proposal: Partial Type Signatures
Simon Peyton Jones
simonpj at microsoft.com
Wed Mar 12 18:34:36 UTC 2014
http://www.haskell.org/haskellwiki/GHC/TypeHoles
| -----Original Message-----
| From: ghc-devs [mailto:ghc-devs-bounces at haskell.org] On Behalf Of Malcolm
| Wallace
| Sent: 12 March 2014 18:19
| To: ghc-devs
| Subject: Re: Proposal: Partial Type Signatures
|
| Since I never used them, I have honestly been under the impression that
| the TypeHoles language extension named exactly this partial type
| signatures thing. I have loved the idea of underspecifying the type
| signature, ever since it was first mooted many years ago. So what does
| TypeHoles do, if not this?
|
| Regards,
| Malcolm
|
| On 12 Mar 2014, at 15:09, Edward Kmett wrote:
|
| > Clearly given that term-level holes are called TypeHoles, the extension
| to enable these should be called KindHoles. =)
| >
| > Er.. I'll show myself out.
| >
| > -Edward
| >
| >
| > On Wed, Mar 12, 2014 at 9:35 AM, Thomas Winant
| <thomas.winant at cs.kuleuven.be> wrote:
| > 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
| >
| > _______________________________________________
| > ghc-devs mailing list
| > ghc-devs at haskell.org
| > http://www.haskell.org/mailman/listinfo/ghc-devs
|
| _______________________________________________
| 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