Why only the first? (And shouldn't this be in a `TotalOrd` implementation? In any case, I guess `#[deriving]` works for `Leaf` too.)