summaryrefslogtreecommitdiff
path: root/docs/type_system/union.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/type_system/union.md')
-rw-r--r--docs/type_system/union.md20
1 files changed, 8 insertions, 12 deletions
diff --git a/docs/type_system/union.md b/docs/type_system/union.md
index 2572591..f4b0b04 100644
--- a/docs/type_system/union.md
+++ b/docs/type_system/union.md
@@ -3,7 +3,7 @@
---
```text
-Union[CONTAINER | TRANSIENT | TRANSIENT_GENERIC] Collection[VAR_TREE_LIST; TYPE.SYMBOL]]
+Union[TAG | TRANSIENT] Collection[VAR_TREE_LIST; TYPE.SYMBOL]]
```
## Type Body Object Definitions
@@ -17,7 +17,9 @@ typedef struct {
# Alias
```text
-Tag[Collection[VAR_TREE_LIST; TYPE.SYMBOL]] `alias Union[[CONTAINER] Collection[VAR_TREE_LIST; TYPE.SYMBOL]]
+Tag[Collection[VAR_TREE_LIST; TYPE.SYMBOL]] `alias Union[[TAG] Collection[VAR_TREE_LIST; TYPE.SYMBOL]]
+
+Transient[Collection[VAR_TREE_LIST; TYPE.SYMBOL]] `alias Union[[TRANSIENT] Collection[VAR_TREE_LIST; TYPE.SYMBOL]]
```
## Tag Example
@@ -37,22 +39,16 @@ u : Tag[I64.a; I64.b; I64.c] $ (.c : 5)
# Transient Unions
+Return multiple types from a function
+
Can only be retuned from functions and operations. The inner value must be moved out
## Alias
```text
-Transient_generic[Generic.T] `alias Union[[TRANSIENT_GENERIC] Generic.T.value]
-
-Result[Generic.T] `alias Union[[TRANSIENT] Generic.T.value; Error.error]
-
-Option[Generic.T] `alias Union[[TRANSIENT] Generic.T.value; Void.null]
-
-Next[Generic.T] `alias Union[[TRANSIENT] Generic.T.value; Void.done]
-
-Next_result[Generic.T] `alias Union[[TRANSIENT] Generic.T.value; Error.error; Void.done]
+Result[Generic.T] `alias Transient[Generic.T.value; Void.null; Error.error]
-Next_option[Generic.T] `alias Union[[TRANSIENT] Generic.T.value; Void.null; Void.done]
+Iteration[Generic.T] `alias Transient[Generic.T.value; Void.null; Void.done; Error.error]
```
## Default Operation