Right now, it's impossible to handle updates and run TDLib effect with the same client. It would be better to have some function like:
interpretTDLib :: Members '[Final IO] r => Client -> Counter -> Locks -> Ans -> Sem (TDLib ': r) a -> Sem r a
Also, it would me much simpler just to have
GetUpdates :: TDLib m [Update]
constructor in TDLib effect.