proc main(): void {
Str name = "bee"
Int count = 42
Float weight = 3.14
Bool ready = true
Atom state = #Ready
echo "{name} {count} {weight} {ready}"
echo state // Ready — echo imprime o nome de um átomo
echo "state: {state}" // state: 1 — dentro de uma string ele é o seu número
echo state == #Ready // true — por isso átomos são comparados, não impressos
}Str guarda texto UTF-8.Int é um inteiro de 64 bits com sinal. Ele nunca dá a volta: uma conta que passaria do seu maior ou menor valor fica nesse valor.Float é um número de ponto flutuante de 64 bits.Bool é true ou false.Atom é um símbolo, escrito #Nome.void é apenas um tipo de retorno; não existe valor, campo ou elemento void.Literais numéricos são decimais e nada mais: sem hexadecimal, sem _ entre dígitos, sem expoente. Um Float tem dígitos dos dois lados do ponto — 0.5, não .5 nem 1. — e -1 é o operador de menos aplicado a 1. Nenhum número é convertido por você: um Int não vira Float sozinho, e hive.conv.itf é como se amplia um de propósito.
Um átomo é um rótulo. echo imprime o nome dele, mas dentro de uma string — interpolado, ou somado com + — ele vira o pequeno número que o compilador lhe deu, então compare átomos com == e não como texto. #Nil é sempre 0; todo outro átomo é numerado pelo lugar onde é mencionado pela primeira vez, que é também a ordem em que sort os coloca. Um átomo não pode ser calculado, e não é uma condição: if state é um erro de compilação quando state é um Atom.