doc/tutorial/basics: add basics tutorial
Change-Id: I350244d6db5e20be4ab3913dc864f61923b2738f
diff --git a/doc/tutorial/basics/disjunctions.md b/doc/tutorial/basics/disjunctions.md
new file mode 100644
index 0000000..11fd875
--- /dev/null
+++ b/doc/tutorial/basics/disjunctions.md
@@ -0,0 +1,25 @@
+[TOC](Readme.md) [Prev](unification.md) [Next](disjstruct.md)
+
+# Disjunctions
+
+Disjunctions, or sum types, define a new type that is one of several things.
+
+In the example, `conn` defines a `protocol` field that must be one of two
+values: `"tcp"` or `"upd"`.
+It is an error for a concrete `conn`
+to define anything else than these two values.
+
+<!-- CUE editor -->
+```
+conn: {
+ address: string
+ port: int
+ protocol: "tcp" | "udp"
+}
+
+lossy: {
+ address: "1.2.3.4"
+ port: 8888
+ protocol: "udp"
+}
+```
\ No newline at end of file