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