+A weak pointer can be finalised early, using the <tt/finalise/ operation:
+
+<tscreen><verb>
+finalise :: Weak v -> IO ()
+</verb></tscreen>
+
+When you don't need a finaliser, we provide the following operation:
+
+<tscreen><verb>
+mkWeakNoFinaliser :: k -> v -> IO (Weak v)
+mkWeakNoFinaliser k v = mkWeak k v (return ())
+</verb></tscreen>
+
+Which creates a weak pointer with a null finaliser. Lots of null
+finalisers can be expensive, because each one runs in a separate
+thread, so the intention is that <tt/mkWeakNoFinaliser> avoids all the
+extra costs by generating a special kind of weak pointer without a
+finaliser. So although the semantics of mkWeakNoFinaliser is as given
+above, its actual implementation is somewhat different.
+