signed integers unsigned integers floating point values i8 u8 i16 u16 f16 i32 u32 f32 i64 u64 f64 i128 u128 f128
i32 is supported well.
The default type of integer constants is currently
i32, but this
will most likely be changed to
false are of
bool, which is the required type for conditions used
if statements or in pre- and post-conditions among others.
bool is fully implemented as a choice type of two unit
There is no character type. It seems risky to define a type for the current 17 planes of Unicode code points. UTF-8 can address 32 planes in 4 bytes. Chances are high that someone will find a use for the additional planes or even extend UTF-8 to support more than 4 bytes per code point. Using i32 for a code point seems sufficiently safe for future Unicode changes.
nil is defined as a unit type feature in the standard library.
It is intended to be used to represent the absence of a value. Examples may be a
lists tail that is empty or the result of a lookup that failed.
void is defined as an absurd feature in the standard library,
i.e. a feature that cannot be instantiated since it requires a
type argument. It is intended to be used to represent the absence of a result.
void is the result type of an endless loop or a intrinsic features
fuzion.std.exit that never would return normally.