[GHC] #12618: Add saturated constructor applications to Core
GHC
ghc-devs at haskell.org
Mon Sep 26 08:14:38 UTC 2016
#12618: Add saturated constructor applications to Core
-------------------------------------+-------------------------------------
Reporter: simonpj | Owner:
Type: feature request | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.0.1
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by simonpj):
Let's not go overboard here! This ticket is ''only'' about treating
'''saturated''' applications of '''data constructors''' specially.
There are two more ambitious possible
* Try to suppress more type arguments, for situations other than saturated
data constructors. If you are interested in that, please read
[https://www.microsoft.com/en-us/research/publication/scrap-your-type-
applications/ Scrap your type applications]. By all means come up with a
better scheme, but that paper describes the best one I know.
* Introduce uncurried application as a Core primitive (and eliminate
`App`). For that we'd want uncurried lambda as well (the intro form).
Please read [https://www.microsoft.com/en-us/research/publication/types-
are-calling-conventions/ Types are calling conventions].
I talked with Stephanie and Joachim about this at ICFP, and I think
Joachim is going to follow it up. It too involves complications (notably
abstraction must be over a telescope), and we had an alternative idea with
"computation types". More on that anon, doubtless.
By all means start new tickets to discuss these generalisations. But
''this'' ticket is just about the intro-form that is dual to `case`,
namely saturated constructor application. If we discuss the (much more
ambitious) generalisations here, the payload of this ticket will get
buried.
(One reason for NOT adopting `ConApp` is that it might ultimately be
subsumed by the more general cases. But I'm not holding my breath.)
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12618#comment:17>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list