Syntax: "if e1 then e2 else e3" where "if", "then", and "else" are keywords and e1, e2, e3 are subexpressions Type-checking: 1. e1 must have type bool 2. e2 and e3 can have any type (let's call it t), but they must have the same type t 3. the type of the entire expression is also t Evaluation rules: 1. evaluate e1 to a value v1 2. if v1 is true, evaluate e2 and that result is the whole expression's result 3. else, evaluate e3 and that result is the whole expression's result