# CUE Tutorial

## About this tutorial

This tutorial teaches the fundamentals of CUE.
To try out the examples in the tutorial you can follow the
[installation instructions](../../install.md)
to get a working setup of CUE.

Use the `cue eval` or `cue export` commands to evaluate an example.

[Click here to start](json.md)

## TOC

- [JSON Sugar and other Goodness](json.md)
  - [Quotes are Optional for Field Names](fieldname.md)
  - [Commas are Optional after Fields](commas.md)
  - [Commas are Still Required in Lists](commaslists.md)
  - [Curly Braces](curly.md)
  - [Folding of Single-Field Structs](fold.md)
  - [Folding all Fields](foldany.md)
  - [Comments](comments.md)
  - [Number Literals](numberlit.md)
  - [String Literals](stringlit.md)
  - [Bytes](bytes.md)
- References and Visibility
  - [References and Scopes](scopes.md)
  - [Accessing Fields](selectors.md)
  - [Aliases](aliases.md)
  - [Emit Values](emit.md)
  - [Hidden Values](hidden.md)
- Types ~~and~~ are Values
  - [Duplicate Fields](duplicates.md)
  - [Bottom / Error](bottom.md)
  - [Basic Types](types.md)
  - [Order is Irrelevant](unification.md)
  - [Disjunctions](disjunctions.md)
  - [Default Values](defaults.md)
  - [Disjunctions of Structs](disjstruct.md)
  - [Numbers](numbers.md)
  - [Ranges](ranges.md)
  - [Predefined Ranges](rangedef.md)
  - [Lists](lists.md)
  - [Templates](templates.md)
- [Modules, Packages, and Instances](instances.md)
  - [Packages](packages.md)
  - [Imports](imports.md)
- Expressions
  - [Operators](operators.md)
  - [Interpolation](interpolation.md)
  - [Interpolation in Field Names](interpolfield.md)
  - [List Comprehensions](listcomp.md)
  - [Field Comprehensions](fieldcomp.md)
  - [Conditional Fields](conditional.md)
  - [Null or Error coalescing](coalesce.md)
  <!-- - Conversions -->
  <!-- - Functions (simulating) -->
