liftTX :: State FakeProvider a -> FakeProviderTX a
liftTX m v = do
  (a, s) <- runState m <$> readTVar v
  writeTVar v s
  return (a, s)  
liftTX :: State FakeProvider a -> FakeProviderTX a
liftTX m v = do
  (a, s) <- runState m <$> readTVar v
  writeTVar v s
  return (a, s)  
liftTX m v = do
  (a, s) <- runState m <$> readTVar v
  writeTVar v s
  return (a, s)  