Variant renaming (again!), Add a Rust fn Value variant.

Unfortunately deriving Eq and Clone seems to fail with the Rust variant. I had to implement them manually. Unfortunately this now means the tests fail to compile now :(