...}以下は全体を示した例です。単位を定義するため、空の列挙型を作成。`f64`ははじめから`Clone`、`Copy`トレイトを持っている。`Add`トレイトは加算演算子(`+`)の挙動を定義する。add()は`Length`の新しいインスタンスを返す。Lengthの中の値は合計値になっている。ここでの`+`は`f64`の`Add`実装を呼び出す。`one_foot`が幽霊型`Inch`を持つように明示する。`one_meter`が幽霊型`Mm`を持つように明示する。以下の`+`は上で定義した`Length<Unit>`用の`add()`メソッドを呼び出す。消費する代わりにそのコピーを作り、`self`、`rhs`として扱う。以下はきちんとコンパイルエラーになる。