Primitives

Scalar types

Almost all of the basic scalar types are implemented in this language.

Basic types

BitsSignedUnsignedFloat
8-bit-uintsmall-
16-bitinthalfuinthalffloathalf
32-bitintuintfloat
64-bitintlonguintlongfloatlong

Additional types

bool: Used for storing a boolean value.

void: Used for indicating a function with no returned value

string: A string variable can be used to store text. The language handles strings as a pointer to an array. (This comes into play when interacting with FFI)

array<T, L>: An array can be used to store multiple values in the same variable. An array has a pre-determined type and length, as indicated by the generic T and L. A length can only be an int.

Custom Types

Structs can also be created by the user via the struct keyword. Structs cannot contain themselves. Definining a struct is similar to how one would do it in other languages.

struct my_struct {
    field1: int,
    field2: string,
    field3: bool,
}

Enums are also available and are accessible via the enum keyword. Enums can also serve as a Default value for any type.

enum Weekdays {
    Monday,
    Tuesday,
    Friday,
}

enum FavWords<string> {
    choco = "Chocolate",
    banana = "Banana",
}