Guide: complex data types

I'm not happy about the hand-waving around `cmp`, but I'm not sure how to get around it.
I may be wrong, but I thought the whole point of creating a new type is to have the opposite of a synonym.

What we want to express with `Inches(int)` and `Centimeters(int)` is that, although they are both internally represented as integers, they don't express the same quantities and we give them different types so that they don't get mistakenly mixed up.

So 
``` rust 
let inches=2i; 
let cm=3i; 
let spaceship_piece_length=inches + cm; // eek!!` 
```
compiles and propagates an incorrect value, but 
```rust
let inches=Inches(2i); 
let cm=Centimeters(3i);
 // let spaceship_piece_length=inches + cm; //doesn't compile`
```
(p.s. reference to spaceship is [not a joke](http://archive.wired.com/science/discoveries/news/1999/09/31631) ...)