summaryrefslogtreecommitdiff
path: root/docs/type_system/index.md
blob: 4cc3586b4da4c474974a3001bbaf91773937bb80 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# Types

* #### [Alias](./alias.md)

* #### [Unique](./unique.md)

---

# Templates

A template is an incomplete type

```text
Template[Field; ...]
```

If a field in a template is not filed, one of these are required:

##### Any

Denotes a field in a template that has not resolved

##### Void

Denotes that a field that does not resolve to anything

## Value Templates

* #### [Enum](./enum.md)

* #### [Flag](./flag.md)

* #### [Int](./int.md)

* #### [Float](./float.md)

## Transient Templates

* #### [Option](./option.md)

* #### [Result](./result.md)

* #### [Lock](./lock.md)

## Container Templates

* #### [Tuple](./tuple.md)

* #### [Buffer](./buffer.md)

* #### [Map](./map.md)

* #### [Queue](./queue.md)

* #### [Union](./union.md)

* #### [Shared](./shared.md)

* #### [Error](./error.md)

## Function Templates

* #### [Regex](./regex.md)

* #### [Var](./var.md)

* #### [Fn](./fn.md)

* #### [Overload](./overload.md)

## AST Templates

* #### [Value](./value.md)

* #### [Name](./name.md)

* #### [Symbol](./symbol.md)

* #### [Op](./op.md)

* #### [List](./list.md)

* #### [Namespace](./namespace.md)