diff options
author | Facundo DomÃnguez <facundo.dominguez@tweag.io> | 2016-02-25 14:33:43 +0100 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2016-02-25 15:41:28 +0100 |
commit | c1efdcc40209bc4f0ded85269eb8ba49c7d1ff09 (patch) | |
tree | 41ae9ba115d2540b7fa80cd7146ce7efbbc34eeb /testsuite/tests/ghc-api | |
parent | 009a99979437314a4cefa07b55a80fd13ea07c8c (diff) | |
download | haskell-c1efdcc40209bc4f0ded85269eb8ba49c7d1ff09.tar.gz |
Overload the static form to reduce verbosity.
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 is achieved by introducing the IsStatic type class and changing
the typing rule for static forms slightly:
static (e :: t) :: IsStatic p => p t
Test Plan: ./validate
Reviewers: austin, hvr, bgamari
Reviewed By: bgamari
Subscribers: simonpj, mboes, thomie
Differential Revision: https://phabricator.haskell.org/D1923
GHC Trac Issues: #11585
Diffstat (limited to 'testsuite/tests/ghc-api')
0 files changed, 0 insertions, 0 deletions