public override INotifyExpression <T> Reduce()
 {
     if (Test.CanBeConstant)
     {
         if (Test.Value)
         {
             return(True.Reduce());
         }
         else
         {
             return(False.Reduce());
         }
     }
     else
     {
         if (True.CanBeConstant && False.CanBeConstant && object.Equals(True.Value, False.Value))
         {
             return(new ObservableConstant <T>(True.Value));
         }
         else
         {
             return(this);
         }
     }
 }