@@ -36,8 +36,6 @@ import Data.Traversable
36import System.Exit
36import System.Exit
37import System.Mem
37import System.Mem
39−import System.IO.Unsafe
41mapToPureBehavior :: Map Int a -> Behavior PureReflexDomain a
39mapToPureBehavior :: Map Int a -> Behavior PureReflexDomain a
42mapToPureBehavior m = P.Behavior $ \t -> case Map.lookupLE t m of
40mapToPureBehavior m = P.Behavior $ \t -> case Map.lookupLE t m of
43 Nothing -> error $ "mapToPureBehavior: no value for time " <> show t
41 Nothing -> error $ "mapToPureBehavior: no value for time " <> show t
@@ -106,9 +104,9 @@ testAgreement :: (Eq c, Eq d, Show c, Show d) => (forall m t. TestCaseConstraint
106testAgreement builder inputs = do
104testAgreement builder inputs = do
107 let identityResult = testPure builder inputs
105 let identityResult = testPure builder inputs
108 tracePerf "---------" $ return ()
106 tracePerf "---------" $ return ()
109− let spiderResult = unsafePerformIO $ S.runSpiderHost $ testTimeline builder inputs
107+ spiderResult <- S.runSpiderHost $ testTimeline builder inputs
110 tracePerf "---------" $ return ()
108 tracePerf "---------" $ return ()
111− let profiledResult = unsafePerformIO $ S.runSpiderHost $ Prof.runProfiledM $ testTimeline builder inputs
109+ profiledResult <- S.runSpiderHost $ Prof.runProfiledM $ testTimeline builder inputs
112 tracePerf "---------" $ return ()
110 tracePerf "---------" $ return ()
113 let resultsAgree = identityResult == spiderResult && identityResult == profiledResult
111 let resultsAgree = identityResult == spiderResult && identityResult == profiledResult
114 if resultsAgree
112 if resultsAgree