mkDebugEngine :: Double -> IO ([Input] -> IO ())
mkDebugEngine dt = do
    (i, o) <- mkEngine dt
    forkIO $ forever $ do
        os <- o
        case os of
            [] -> return ()
            _ -> print os
    return i
mkDebugEngine :: Double -> IO ([Input] -> IO ())
mkDebugEngine dt = do
    (i, o) <- mkEngine dt
    forkIO $ forever $ do
        os <- o
        case os of
            [] -> return ()
            _ -> print os
    return i
mkDebugEngine dt = do
    (i, o) <- mkEngine dt
    forkIO $ forever $ do
        os <- o
        case os of
            [] -> return ()
            _ -> print os
    return i