--
-----------------------------------------------------------------------------
+-- #hide
module GHC.Weak where
import GHC.Base
import Data.Maybe
import GHC.IOBase ( IO(..), unIO )
+import Data.Typeable ( Typeable1(..), mkTyCon, mkTyConApp )
{-|
A weak pointer object with a key and a value. The value has type @v@.
-}
data Weak v = Weak (Weak# v)
+#include "Typeable.h"
+INSTANCE_TYPEABLE1(Weak,weakTc,"Weak")
+
-- | Establishes a weak pointer to @k@, with value @v@ and a finalizer.
--
-- This is the most general interface for building a weak pointer.