code: public static Value<Boolean> and (final Iterable<Value<Boolean>> values)
      {
          MultiMappedValue<Boolean, Boolean> mapped =
              new MultiMappedValue<Boolean, Boolean>(computeAnd(values)) {
              @Override protected Boolean recompute (Boolean ignored) {
                  return computeAnd(values);
              }
          };
          for (Value<Boolean> value : values) {
              value.addListener(mapped);
          }
          return mapped;
      }
docs: Returns a value which is the logical AND of the supplied values.