(edited conversation from #rust, featuring jml, reem, and Yurume).
I have a value type Foo, implemented as a struct with methods that return Foo such that the struct is never mutated but only new ones returned. If I want one of those to return the value unchanged, do I have to clone? e.g. http://is.gd/rm4gmY
#[deriving(Eq, PartialEq, PartialOrd, Ord, Show, Clone)]
struct Foo {
x: int,