# The Teal Programming Language

## Introduction

- [Introduction](./introduction.md)
  - [This project's goals](./about.md)
  - [Why Types](./why_types.md)

## Programming with Types in Teal

- [Programming with types in Teal](./tutorial.md)
  - [Installing tl](./installing_tl.md)
  - [Your first Teal program](./your_first_teal_program.md)
  - [Types in Teal](./types_in_teal.md)
     - [Arrays](./arrays.md)
     - [Tuples](./tuples.md)
     - [Maps](./maps.md)
     - [Records](./records.md)
     - [Interfaces](./interfaces.md)
     - [Generics](./generics.md)
     - [Enums](./enums.md)
     - [Functions](./functions.md)
     - [Union types](./union_types.md)
     - [The type "any"](./the_type_any.md)
  - [Local variables](./local_variables.md)
  - [Global variables](./global_variables.md)
  - [Variable attributes](./variable_attributes.md)
  - [Metamethods](./metamethods.md)
  - [Macro expressions](./macroexp.md)
- [Behavior rules](./behavior.md)
  - [Type aliasing rules](./aliasing.md)
  - [Type variable matching](./type_variables.md)
  - [Pragmas](./pragmas.md)
  - [Current limitations on union types](./current_limitations_on_union_types.md)

## Tooling

- [Using tl with Lua](./using_tl_with_lua.md)
- [Type definitions for third party libraries](./declaration_files.md)
- [The Teal Standard Library and Lua compatibility](./teal_standard_library_and_lua_compatibility.md)
- [Compiler options](./compiler_options.md)

## The Teal project

- [Hacking on tl itself](./developing.md)

## Reference

- [The Grammar of Teal](./grammar.md)
- [Other related projects](other_projects.md)
