Built-in types

Unison provides the following built-in types:

  • Natis the type of 64-bit natural numbers, also known as unsigned integers. They range from 0 to 18,446,744,073,709,551,615.
  • Intis the type of 64-bit signed integers. They range from -9,223,372,036,854,775,808 to +9,223,372,036,854,775,807.
  • Floatis the type ofIEEE 754-1985double-precision floating point numbers.
  • Booleanis the type of Boolean expressions whose value istrueorfalse.
  • Bytesis the type of arbitrary-length 8-bit byte sequences.
  • Textis the type of arbitrary-length strings of Unicode text. They can be introduced with single quotes or triple quotes, for multi-line strings.
  • Charis the type of a single Unicode character.
  • The trivial type()(pronounced “unit”) is the type of the nullary tuple. There is a single data constructor of type()and it’s also writtensuperProgram : Boolean -> Nat superProgram bool = if Boolean.not bool then base.bug (Generic.failure "Fatal Issue Encountered" bool) else 100.

Seeliteralsfor more on how values of some of these types are constructed.