# Hillel Wayne - Labels :: Learn TLA+ (Highlights) ![rw-book-cover|256](https://readwise-assets.s3.amazonaws.com/static/images/article3.5c705a01b476.png) ## Metadata **Cover**:: https://readwise-assets.s3.amazonaws.com/static/images/article3.5c705a01b476.png **Source**:: #from/readwise **Zettel**:: #zettel/fleeting **Status**:: #x **Authors**:: [[Hillel Wayne]] **Full Title**:: Labels :: Learn TLA+ **Category**:: #articles #readwise/articles **Category Icon**:: 📰 **URL**:: [learntla.com](https://learntla.com/concurrency/labels/) **Host**:: [[learntla.com]] **Highlighted**:: [[2020-09-20]] **Created**:: [[2022-09-26]] ## Highlights - The first line in a process has to have a label. - A label must come before a `while` statement. - A label must come right after a `call`, `return`, or `goto`. - If you have a control statement, such as `if` or `either`, and one possible branch has a label in it, then the whole control structure must be followed with a label. - You cannot put labels in a `with` statement. - You cannot assign to any given variable more than once in a label. - switching two variables, or assigning to different records of the same structure. In these cases you can use `||` to chain assignments