+ template <typename T>
+ struct var {
+ var() { value = 0; }
+ var(T v) { value = v; }
+ var(var const& r) { value = r.value; }
+ ~var() { }
+
+ void operator = (T v) { value = v; }
+ T operator () () { return value; }
+ void operator += (T v) { value += v; }
+ bool operator == (const struct var<T> v) const { return value == v.value; }
+
+ T value;
+ };
+