Types
Primitives
Basic integer types: u8, u16, u32, u64, i8, i16, i32, i64
There is also bool type and never type that represents type that can
never be constructed (for example return expression has type never)
Compound types
Pointer types: *T, *mut T, fn(...) -> T
Tuples: (T, U, V)