doc/tutorial/basics: add basics tutorial

Change-Id: I350244d6db5e20be4ab3913dc864f61923b2738f
diff --git a/doc/tutorial/basics/aliases.md b/doc/tutorial/basics/aliases.md
new file mode 100644
index 0000000..854d5db
--- /dev/null
+++ b/doc/tutorial/basics/aliases.md
@@ -0,0 +1,38 @@
+[TOC](Readme.md) [Prev](selectors.md) [Next](emit.md)
+
+# Aliases
+
+An alias defines a local macro.
+
+A typical use case is to provide access to a shadowed field.
+
+Alias are not members of a struct and thus are not part of the model and
+cannot be accessed.
+
+
+<!-- CUE editor -->
+```
+A = a  // A is an alias to a
+a: {
+    d: 3
+}
+b: {
+    a: {
+        // A provides access to the outer "a" which would
+        // otherwise be hidden by the inner one.
+        c: A.d
+    }
+}
+```
+
+<!-- result -->
+```
+a: {
+    d: 3
+}
+b: {
+    a: {
+        c: 3
+    }
+}
+```