# Identifiers¶

All keywords - e.g. type identifiers, type aliases, constants, built-in functions - are case insensitive.

(User) Identifiers are case insensitive, unless escaped with back ticks, in which case they become case sensitive and must be used with back ticks uniformly. Back ticks can also be used for identifiers that are not simple words or that match internal keywords: e.g. SELECT is a reserved keyword but the user may define a variable as ‘SELECT’.

## Bindings¶

Expressions can be bound to an identifier as in:

s: string := "foo"
v := 1
s + v // result is "foo1"


The identifiers may optionally take a type (as in the example above with s); if not, the type is inferred from the expression.