[commit: ghc] master: Document Proxy# (#8658) (d4f0fcf)
git at git.haskell.org
git at git.haskell.org
Thu Jan 9 07:03:11 UTC 2014
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/d4f0fcf368765ae4aa7ebe914bc2f254026694c8/ghc
>---------------------------------------------------------------
commit d4f0fcf368765ae4aa7ebe914bc2f254026694c8
Author: Austin Seipp <austin at well-typed.com>
Date: Thu Jan 9 01:02:56 2014 -0600
Document Proxy# (#8658)
Signed-off-by: Austin Seipp <austin at well-typed.com>
>---------------------------------------------------------------
d4f0fcf368765ae4aa7ebe914bc2f254026694c8
compiler/prelude/primops.txt.pp | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/compiler/prelude/primops.txt.pp b/compiler/prelude/primops.txt.pp
index b3cf2f4..36eec67 100644
--- a/compiler/prelude/primops.txt.pp
+++ b/compiler/prelude/primops.txt.pp
@@ -2228,6 +2228,18 @@ section "Etc"
{Miscellaneous built-ins}
------------------------------------------------------------------------
+primtype Proxy# a
+ { The type constructor {\tt Proxy#} is used to bear witness to some
+ type variable. It's used when you want to pass around proxy values
+ for doing things like modelling type applications. A {\tt Proxy#}
+ is not only unboxed, it also has a polymorphic kind, and has no
+ runtime representation, being totally free. }
+
+pseudoop "proxy#"
+ Proxy# a
+ { Witness for an unboxed {\tt Proxy#} value, which has no runtime
+ representation. }
+
pseudoop "seq"
a -> b -> b
{ Evaluates its first argument to head normal form, and then returns its second
More information about the ghc-commits
mailing list