+
+{-
+patchAllRefs :: (RefObj a) => a -> IO a
+patchAllRefs obj = do markTree'' patchAndCheckMark unmark [] obj
+ getNewRef obj
+ where patchAndCheckMark :: a -> IO Bool
+ patchAndCheckMark a = undefined
+-}
+
+testEvacuation objr = do ref <- objr
+ lifeRefs <- markTree'' marked mark [] ref
+ putStrLn "initial objectTree"
+ printTree ref
+ memoryManager <- initTwoSpace 0x10000
+ evacuateList lifeRefs memoryManager
+ print lifeRefs
+ putStrLn "oldObjectTree: "
+ printTree ref
+ patchAllRefs lifeRefs
+ newRef <- getNewRef ref
+ putStrLn "resulting objectTree"
+ printTree newRef
+
+