# 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 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)
- [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](coalescing.md)
  <!-- - Conversions -->
  <!-- - Functions (simulating) -->
