Change:
When looking at the reference docs (stable and nightly), the sections on " expressions" and " expressions" both refer to "refutable let statements". I think there are two problems with this description: phrase "let statements" only appears in the section on "type coercions", and even there its meaning is only hinted at by example. Maybe this should somehow refer to the section on "declaration statements" (which itself doesn't currently mention )? phrase "refutable let statements" is nowhere defined in the document. The section on functions mentions "function arguments are irrefutable patterns", but the notion of refutability doesn't get a good treatment. There are examples, which do help, but this is not necessarily the same thing as explaining it in prose, and a prose description would provide a place to hyperlink to. (All this being said, I did clear up my own confusion on this by being able to look at the examples, which are super-helpful.)

Discussion:
> **Note**: there is no implicit capture of the function's dynamic environment when > declaring a function-local item. <del> #### Variable declarations </del> <ins> #### `let` statements </ins> <del> A _variable declaration_ introduces a new set of variable, given by a pattern. The </del> <ins> A _`let` statement_ introduces a new set of variables, given by a pattern. The </ins> pattern may be followed by a type annotation, and/or an initializer expression. When no type annotation is given, the compiler will infer the type, or signal an error if insufficient type information is available for definite inference.

### `if let` expressions <del> An `if let` expression is semantically identical to an `if` expression but in place of a condition expression it expects a refutable let statement. If the value of the expression on the right hand side of the let statement matches the pattern, the corresponding block will execute, otherwise flow proceeds to the first `else` block that follows. </del> <ins> An `if let` expression is semantically identical to an `if` expression but in place of a condition expression it expects a `let` statement with a refutable pattern. If the value of the expression on the right hand side of the `let` statement matches the pattern, the corresponding block will execute, otherwise flow proceeds to the first `else` block that follows. </ins> ``` let dish = ("Ham", "Eggs");

### `while let` loops <del> A `while let` loop is semantically identical to a `while` loop but in place of a condition expression it expects a refutable let statement. If the value of the expression on the right hand side of the let statement matches the pattern, the loop body block executes and control returns to the pattern matching statement. Otherwise, the while expression completes. </del> <ins> A `while let` loop is semantically identical to a `while` loop but in place of a condition expression it expects `let` statement with a refutable pattern. If the value of the expression on the right hand side of the `let` statement matches the pattern, the loop body block executes and control returns to the pattern matching statement. Otherwise, the while expression completes. </ins> ### `return` expressions