|  | // Every declaration of a variable, function, or type is of the following form: | 
|  | //     name : kind = definition | 
|  | // where the components mean (and most are optional): | 
|  | //     name is the name being declared | 
|  | //     kind is the kind of entity being declared | 
|  | //     definition can be any expression, including a block expression | 
|  |  | 
|  | // For example, these are declaration statements (and definitions): | 
|  |  | 
|  | widget: type = int;                // define a type | 
|  |  | 
|  | x: widget = 42;                    // a named variable | 
|  |  | 
|  | shape: type = { x: int; y: int; }  // a named type | 
|  |  | 
|  | add: (x:_, y:_) = { return x+y; }  // a named generic function | 
|  |  | 
|  | // add: (x, y) = x+y;              // same, using defaults | 
|  |  | 
|  | // In expression scope, omit name to declare an unnamed entity. For example, these are declaration expressions: | 
|  | :widget = 42;                      // an unnamed (temporary) object expression | 
|  |  | 
|  | :type = { x: int; y: int; }        // an unnamed type expression | 
|  |  | 
|  | //:(x, y) = x+y                    // an unnamed (lambda) function expression | 
|  |  | 
|  | // Note	These : expressions have very low precedence, so a trailing ; is not needed when lambdas are passed as arguments. | 
|  | // A local variable declaration statement may omit kind or definition. | 
|  | // If kind is omitted, it is deduced as if specified _. | 
|  | // If = definition is omitted, name must be defined by initialization before use (see §3.4.1). For example: | 
|  |  | 
|  | y : int = 42;                       // y is an int with initial value 42 | 
|  |  | 
|  | z :     = 42;                       // z, the same, “_” is implicit default | 
|  |  | 
|  | w := 42;                            // same, stylistic convenience | 
|  |  | 
|  | // s: string;                       // declares s, unconstructed | 
|  |  | 
|  | // t = f();                         // constructs t, definite first use |