summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAustin Seipp <austin@well-typed.com>2014-01-09 01:02:56 -0600
committerAustin Seipp <austin@well-typed.com>2014-01-09 01:02:56 -0600
commitd4f0fcf368765ae4aa7ebe914bc2f254026694c8 (patch)
tree11501172eb1e1cbda93b28bf5782a1c754a5bf10
parenta93f85718cdfd36239095365f7b5efc7f2ecc4de (diff)
downloadhaskell-d4f0fcf368765ae4aa7ebe914bc2f254026694c8.tar.gz
Document Proxy# (#8658)
Signed-off-by: Austin Seipp <austin@well-typed.com>
-rw-r--r--compiler/prelude/primops.txt.pp12
1 files changed, 12 insertions, 0 deletions
diff --git a/compiler/prelude/primops.txt.pp b/compiler/prelude/primops.txt.pp
index b3cf2f424d..36eec67b7d 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