The main building blocks of the Nessa type system are what we will call **basic types**. These represent kinds of data that can be stored.
As you might expect, Nessa provides an implementation for some basic types, which are summarized in the following table:
| `Int` | Unbounded size integer |
| `Float` | 64 bits floating point number |
| `Bool` | Value that can be either *true* or *false* |
| `String` | UTF-8 encoded text |
| `File` | Handle that points to a file and allows reading and writing |
These types are not much by themselves, but in the following sections we will see how we can combine them in order to make more complex types.