public Variable(IDomain domain, Value value)
        {
            if(!domain.Equals(value.ValueDomain))
                throw new Exception("Value and domain mismatch");

            ValueDomain = domain;
            _value = value;
        }
        public Variable(IDomain domain, Value value)
        {
            if (!domain.Equals(value.ValueDomain))
            {
                throw new Exception("Value and domain mismatch");
            }

            ValueDomain = domain;
            _value      = value;
        }