timeOpMicros :: IO a -> IO (a,Word64)
timeOpMicros io = do
  t_st <- nowNanos
  a <- io
  t_en <- nowNanos
  t_diff <- evaluate $! t_en - t_st
  return (a, t_diff`div`1000)
timeOpMicros :: IO a -> IO (a,Word64)
timeOpMicros io = do
  t_st <- nowNanos
  a <- io
  t_en <- nowNanos
  t_diff <- evaluate $! t_en - t_st
  return (a, t_diff`div`1000)
timeOpMicros io = do
  t_st <- nowNanos
  a <- io
  t_en <- nowNanos
  t_diff <- evaluate $! t_en - t_st
  return (a, t_diff`div`1000)