summaryrefslogtreecommitdiff
path: root/testsuite/tests/ghc-api
diff options
context:
space:
mode:
authorFacundo Domínguez <facundo.dominguez@tweag.io>2016-02-25 14:33:43 +0100
committerBen Gamari <ben@smart-cactus.org>2016-02-25 15:41:28 +0100
commitc1efdcc40209bc4f0ded85269eb8ba49c7d1ff09 (patch)
tree41ae9ba115d2540b7fa80cd7146ce7efbbc34eeb /testsuite/tests/ghc-api
parent009a99979437314a4cefa07b55a80fd13ea07c8c (diff)
downloadhaskell-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