Ціль має строгу статичну типизацію. Більшість вбудованих типів мають аналоги в С.
Ціль не дозволяє виконувати операції з різними типами чи типами різних розмірів. До прикладу, в Цілі не
можна просто додати ц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ю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 = "привіт";
Структура т8:
структура т8 { розмір: натуральне; дані: памʼять<п8>; }
ю8 містить UTF-8 значення.
змінна а: ю8 = ю8"привіт";
Структура ю8:
структура ю8 { розмір: натуральне; дані: памʼять<п8>; }