+ // Rust's type for (dynamic, growable) strings is `String`. However, our variable `line`
+ // here is not yet of that type: It has type `io::Result<String>`.
+ //@ The problem with I/O is that it can always go wrong. The type of `line` is a lot like `Option<String>` ("a `String` or
+ //@ nothing"), but in the case of "nothing", there is additional information about the error.
+ //@ Again, I recommend to check [the documentation](http://doc.rust-lang.org/stable/std/io/type.Result.html).
+ //@ You will see that `io::Result` is actually just an alias for `Result`, so click on that to obtain
+ //@ the list of all constructors and methods of the type.
+
+ //@ We will be lazy here and just assume that nothing goes wrong: `unwrap()` returns the `String` if there is one,
+ //@ and panics the program otherwise. Since a `Result` carries some details about the error that occurred,
+ //@ there will be a somewhat reasonable error message. Still, you would not want a user to see such
+ //@ an error, so in a "real" program, we would have to do proper error handling.
+ //@ Can you find the documentation of `Result::unwrap()`?
+ //@
+ // I chose the same name (`line`) for the new variable to ensure that I will never, accidentally,
+ // access the "old" `line` again.