From: simonmar Date: Thu, 13 Sep 2001 11:36:52 +0000 (+0000) Subject: [project @ 2001-09-13 11:36:52 by simonmar] X-Git-Tag: nhc98-1-18-release~1171 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=a69d9d666f8fdb5b11275bda034c5c2f1c5a43d8;p=ghc-base.git [project @ 2001-09-13 11:36:52 by simonmar] make this compile --- diff --git a/System/Mem/Weak.hs b/System/Mem/Weak.hs index 09c095d..6a092e0 100644 --- a/System/Mem/Weak.hs +++ b/System/Mem/Weak.hs @@ -8,7 +8,7 @@ -- Stability : experimental -- Portability : non-portable -- --- $Id: Weak.hs,v 1.1 2001/06/28 14:15:04 simonmar Exp $ +-- $Id: Weak.hs,v 1.2 2001/09/13 11:36:52 simonmar Exp $ -- -- Weak references, weak pairs, weak pointers, and finalizers. -- @@ -30,14 +30,16 @@ module System.Mem.Weak ( import Prelude -#include "Dynamic.h" -INSTANCE_TYPEABLE0(Weak,weakTc,"Weak") +import Data.Dynamic #ifdef __GLASGOW_HASKELL__ import GHC.Base import GHC.IOBase import GHC.Weak +#include "Dynamic.h" +INSTANCE_TYPEABLE1(Weak,weakTc,"Weak") + deRefWeak :: Weak v -> IO (Maybe v) deRefWeak (Weak w) = IO $ \s -> case deRefWeak# w s of @@ -54,3 +56,4 @@ finalize (Weak w) = IO $ \s -> (# s1, 0#, _ #) -> (# s1, () #) -- already dead, or no finaliser (# s1, _, f #) -> f s1 #endif +