Document mkWeak#
authorBen Gamari <bgamari.foss@gmail.com>
Tue, 25 Apr 2017 22:39:58 +0000 (18:39 -0400)
committerBen Gamari <ben@smart-cactus.org>
Tue, 25 Apr 2017 22:41:01 +0000 (18:41 -0400)
Reviewers: simonmar, austin

Reviewed By: simonmar

Subscribers: RyanGlScott, rwbarton, thomie

GHC Trac Issues: #10640, #13611

Differential Revision: https://phabricator.haskell.org/D3498

compiler/prelude/primops.txt.pp

index 8c9cc92..255235a 100644 (file)
@@ -2382,6 +2382,11 @@ primtype Weak# b
 primop  MkWeakOp "mkWeak#" GenPrimOp
    o -> b -> (State# RealWorld -> (# State# RealWorld, c #))
      -> State# RealWorld -> (# State# RealWorld, Weak# b #)
+   { {\tt mkWeak# k v finalizer s} creates a weak reference to value {\tt k},
+     with an associated reference to some value {\tt v}. If {\tt k} is still
+     alive then {\tt v} can be retrieved using {\tt deRefWeak#}. Note that
+     the type of {\tt k} must be represented by a pointer (i.e. of kind {\tt
+     TYPE 'LiftedRep} or {\tt TYPE 'UnliftedRep}). }
    with
    has_side_effects = True
    out_of_line      = True