Remove references to () from types of mkWeak# and friends
[ghc.git] / libraries / base / GHC / MVar.hs
index 911c024..bdad179 100644 (file)
@@ -176,6 +176,9 @@ isEmptyMVar (MVar mv#) = IO $ \ s# ->
 -- |Add a finalizer to an 'MVar' (GHC only).  See "Foreign.ForeignPtr" and
 -- "System.Mem.Weak" for more about finalizers.
 addMVarFinalizer :: MVar a -> IO () -> IO ()
-addMVarFinalizer (MVar m) finalizer =
-  IO $ \s -> case mkWeak# m () finalizer s of { (# s1, _ #) -> (# s1, () #) }
+addMVarFinalizer (MVar m) (IO finalizer) =
+    IO $ \s -> case mkWeak# m () finalizer' s of { (# s1, _ #) -> (# s1, () #) }
+  where
+    finalizer' :: State# RealWorld -> State# RealWorld
+    finalizer' s' = case finalizer s' of (# s'', () #) -> s''