data
====

Various data types.

Basic types:

* [empty](empty.lean) : the empty type
* [unit](unit.lean) : the singleton type
* [bool](bool.lean) : the boolean values
* [num](num.lean) : generic numerals
* [string](string.lean) : ascii strings
* [nat](nat/nat.md) : the natural numbers
* [fin](fin.lean) : finite ordinals
* [int](int/int.md) : the integers
* [rat](rat/rat.md) : the rationals
* [pnat](pnat.lean) : the positive natural numbers
* [real](real/real.md) : the real numbers
* [complex](complex.lean) : the complex numbers

Constructors:

* [prod](prod.lean) : cartesian product
* [sum](sum.lean)
* [sigma](sigma.lean) : the dependent product
* [uprod](uprod.lean) : unordered pairs
* [option](option.lean)
* [squash](squash.lean) : propositional truncation
* [list](list/list.md)
* [finset](finset/finset.md) : finite sets
* [stream](stream.lean)
* [set](set/set.md)

Types with extra information:

* [fintype](fintype/fintype.md) : finite types
* [encodable](encodable.lean) : types with a coding to nat
