Ціль має строгу статичну типизацію. Більшість вбудованих типів мають аналоги в С.
Ціль не дозволяє виконувати операції з різними типами чи типами різних розмірів. До прикладу, в Цілі не
можна просто додати ц32 та ц64 (як int та long в С).
змінна а: ц32 = 2; змінна б: ц64 = 3; змінна в = а + б; // помилка компіляції
Автоматичного приведення типів не буде, а тому необхідно вручну перетворити одне зі значень.
змінна а: ц32 = 2; змінна б: ц64 = 3; змінна в = ц64(а) + б; // в буде ц64
цілец64ц32ц16ц8природнеп64п32п16п8д32д64логічненевідома_адресаадреса<Т>невідома_памʼятьпамʼять<Т>() -> Ткдю8ціле містить значення цілого числа розміром залежно від системи (ssize_t в C).
змінна а: ціле = 10;
ц64 містить значення цілого числа розміром 64 біт (int64_t в C).
змінна а: ц64 = 10;
ц32 містить значення цілого числа розміром 32 біт (int32_t в C).
змінна а: ц32 = 10;
ц16 містить значення цілого числа розміром 16 біт (int16_t в C).
змінна а: ц16 = 10;
ц8 містить значення цілого числа розміром 8 біт (int8_t в C).
змінна а: ц8 = 10;
природне містить значення природного числа розміром залежно від системи (size_t в C).
змінна а: природне = 10;
п64 містить значення природного числа розміром 64 біт (uint64_t в C).
змінна а: п64 = 10;
п32 містить значення природного числа розміром 32 біт (uint32_t в C).
змінна а: п32 = 10;
п16 містить значення природного числа розміром 16 біт (uint16_t в C).
змінна а: п16 = 10;
п8 містить значення природного числа розміром 8 біт (uint8_t в C).
змінна а: п8 = 10;
д64 містить значення дробового числа розміром 64 біт (double в C).
змінна а: д64 = 1.23;
д32 містить значення дробового числа розміром 32 біт (float в C).
змінна а: д32 = -3.21;
логічне містить значення природного числа розміром 8 біт (bool в C).
змінна а: логічне = так; змінна б: логічне = ні;
невідома_адреса містить адресу на значення невідомого типу (void* в С).
змінна а: невідома_адреса = пусто;
адреса<Т> містить адресу на значення типу Т (Т* в С).
змінна а: ціле = 123; змінна б: адреса<ціле> = а::адреса;
невідома_памʼять містить адресу на послідовність значень невідомого типу (void* в С).
змінна а: невідома_памʼять = пусто;
памʼять<Т> містить адресу на послідовність значень типу Т (Т* в С).
змінна а: ціле = 123; змінна б: памʼять<ціле> = а::адреса як памʼять<ціле>;
() -> Т містить адресу на дію (Т (*)() в С).
дія сума(а: ціле, б: ціле): ціле { вернути а + б; } //... змінна д: (ціле, ціле) -> ціле = сума;
кд містить текстове значення (КД-Б з 8-бітним кодуванням).
змінна а: кд = "привіт";
Структура кд:
структура кд { розмір: природне; дані: памʼять<п8>; }
ю8 містить UTF-8 значення.
змінна а: ю8 = ю8"привіт";
Структура ю8:
структура ю8 { розмір: природне; дані: памʼять<п8>; }