doNotation1.lean:4:0-4:6: error: `y` cannot be mutated, only variables declared using `let mut` can be mutated. If you did not intent to mutate but define `y`, consider using `let y` instead doNotation1.lean:8:2-8:18: error: `y` cannot be mutated, only variables declared using `let mut` can be mutated. If you did not intent to mutate but define `y`, consider using `let y` instead doNotation1.lean:12:2-12:17: error: `p` cannot be mutated, only variables declared using `let mut` can be mutated. If you did not intent to mutate but define `p`, consider using `let p` instead doNotation1.lean:20:7-20:22: error: invalid reassignment, value has type Vector Nat (n + 1) : Type but is expected to have type Vector Nat n : Type doNotation1.lean:25:7-25:11: error: invalid reassignment, value has type Bool : Type but is expected to have type Nat : Type doNotation1.lean:24:0-25:11: error: type mismatch, `for` has type PUnit : Sort ?u but is expected to have type List Bool : Type doNotation1.lean:28:0-29:14: error: type mismatch, `for` has type PUnit : Sort ?u but is expected to have type List Nat : Type doNotation1.lean:33:2-33:7: error: invalid `do` element, it must be inside `for` doNotation1.lean:37:2-37:10: error: invalid `do` element, it must be inside `for` doNotation1.lean:40:0-40:9: error: must be last element in a `do` sequence def f10 : Nat → IO Unit := fun x => IO.println x doNotation1.lean:51:0-51:13: error: type mismatch IO.mkRef true has type BaseIO (IO.Ref Bool) : Type but is expected to have type IO Unit : Type doNotation1.lean:58:2-58:20: error: type mismatch, result value has type Unit : Type but is expected to have type Bool : Type doNotation1.lean:66:0-66:18: error: `do` element is unreachable doNotation1.lean:70:0-70:32: error: `do` element is unreachable