summaryrefslogtreecommitdiff
path: root/docs/type_system/function.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/type_system/function.md')
-rw-r--r--docs/type_system/function.md23
1 files changed, 12 insertions, 11 deletions
diff --git a/docs/type_system/function.md b/docs/type_system/function.md
index af17b74..ed1cf9d 100644
--- a/docs/type_system/function.md
+++ b/docs/type_system/function.md
@@ -3,15 +3,16 @@
---
```text
-INVOCATION : UNKNOWN | SYNC | ASYNC
-STATELESS : INCOMPLETE | NATIVE | NATIVE_INLINE | PROCESS | GENERATOR | REGEX_GENERATOR
+MODE: INCOMPLETE | COMPLETE
-STATEFUL : TASK | ITERATOR | CLOSURE | BOUND | REGEX
+INVOCATION : SYNC | ASYNC
+
+STATELESS : NATIVE | NATIVE_INLINE | PROCESS | GENERATOR | REGEX_GENERATOR
-FLAGS : INVOCATION | STATELESS | STATEFUL
+STATEFUL : TASK | ITERATOR | CLOSURE | BOUND | REGEX
-Function[[FLAGS]; Body; RETURN_TYPE; Collection[VAR_LIST; TYPE.SYMBOL]]
+Function[[MODE | INVOCATION | STATELESS | STATEFUL]; INVOCATION_LIST; Body; RETURN_TYPE; Collection[VAR_LIST; TYPE.SYMBOL]]
```
## Type Body Object Definitions
@@ -25,7 +26,7 @@ typedef struct {
# Alias
```text
-Fn[Generic.T; Collection[VAR_TREE_LIST; TYPE.SYMBOL]] `alias Function[[FLAGS]; STATE; List; Generic.T; Collection[VAR_TREE_LIST; TYPE.SYMBOL]]
+Fn[Generic.T; Collection[VAR_TREE_LIST; TYPE.SYMBOL]] `alias Function[...]
```
# Inline Definition
@@ -37,13 +38,13 @@ Fn[Generic.T; Collection[VAR_TREE_LIST; TYPE.SYMBOL]] `alias Function[[FLAGS]; S
# Function Classes
-## Unknown
+## Incomplete
-Placeholder before evaluation
+A function with an incomplete type, type checking occurs at invocation its complete types are stored in its `INVOCATION_LIST`
-## Incomplete
+## Complete
-A function with an incomplete type, type checking occurs at invocation
+A function with a complete type, its sync/async invocations are stored in the `INVOCATION_LIST`
## Native
@@ -95,7 +96,7 @@ Invoked regular expression matcher
## \`yield
-Yielding wraps the value in the transient union `Next`
+Yielding wraps the value in the transient union `Iteration`
Return `Void` to stop iteration