# Disco Language Reference¶

The Disco Language Reference consists of a number of short, interlinked pages, each centered on a single topic. This is not a typical “language reference”, which would be intended for language implementers and organized according to syntax, type system, semantics, and so on. Neither is it a comprehensive tutorial meant to be read from start to finish. Rather, it is intended to be a reference for students who are just learning the language. Error messages and other documentation may link here, giving students the opportunity to learn about specific topics just when it is relevant to them.

- Arithmetic
- Comparison
- Logical operations
- Syntax
- Types
- Functions
- Collections
- Combinatorics
- Error messages
- There is nothing named x
- The name x is ambiguous
- The definition of x must have an accompanying type signature
- The expression e must have both a blah type and also…
- Empty case expressions are not allowed
- Value did not match any of the branches in a case expression
- Pattern p contains duplicate variable x
- The pattern p is supposed to have type T, but instead…
- Duplicate type signature for x
- Duplicate definition for x
- Duplicate definition for type T
- Cyclic type definition for T
- Number of arguments does not match
- The type T is not searchable
- There is no built-in or user-defined type named X
- Wildcards are not allowed in expressions
- Not enough/too many arguments for the type T
- Unknown type variable
- Recursive occurrences of T may only have type variables as arguments
- The shape of two types does not match
- Typechecking failed
- Values of type T cannot be…
- Type variable x represents any type, so we cannot assume…

- Symbols