[GHC] #11585: Overload the static form to reduce verbosity
GHC
ghc-devs at haskell.org
Tue Feb 16 12:37:16 UTC 2016
#11585: Overload the static form to reduce verbosity
-------------------------------------+-------------------------------------
Reporter: | Owner:
facundo.dominguez | facundo.dominguez
Type: feature request | Status: new
Priority: normal | Milestone: 8.0.1
Component: Compiler | Version: 7.10.3
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: |
-------------------------------------+-------------------------------------
Description changed by facundo.dominguez:
@@ -16,2 +16,2 @@
- This is achieved by introducing the {{{IsStatic}}} type class and changing
- the typing rule for static forms slightly:
+ This could be achieved by introducing the {{{IsStatic}}} type class and
+ changing the typing rule for static forms slightly:
New description:
Static pointers are rarely used naked: most often they are defined at the
base of a {{{Closure}}}, as defined in e.g. the {{{distributed-closure}}}
and {{{distributed-static}}} packages. So a typical usage pattern is:
{{{
distributeMap (closure (static (\x -> x * 2)))
}}}
which is more verbose than it needs to be. Ideally we'd just have to
write
{{{
distributeMap (static (\x -> x * 2))
}}}
and let the static pointer be lifted to a {{{Closure}}} implicitly. i.e.
what we want is to overload static literals, just like we already overload
list literals and string literals.
This could be achieved by introducing the {{{IsStatic}}} type class and
changing the typing rule for static forms slightly:
{{{
static (e :: t) :: IsStatic p => p t
}}}
--
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11585#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list