timeCommand :: FilePath -> [String] -> IO (Double, (ExitCode, String, String))
timeCommand f a = do
  start <- getCurrentTime
  x <- readProcessWithExitCode f a []
  end <- getCurrentTime
  let t = diffUTCTime end start
  return (realToFrac t, x)
timeCommand :: FilePath -> [String] -> IO (Double, (ExitCode, String, String))
timeCommand f a = do
  start <- getCurrentTime
  x <- readProcessWithExitCode f a []
  end <- getCurrentTime
  let t = diffUTCTime end start
  return (realToFrac t, x)
timeCommand f a = do
  start <- getCurrentTime
  x <- readProcessWithExitCode f a []
  end <- getCurrentTime
  let t = diffUTCTime end start
  return (realToFrac t, x)