package puzzle;

public interface Mask {
   
   record Masker(long lo, long hi)
           implements Mask { }
   default Mask or(Mask o)         { return new Masker(o.lo() | lo(), o.hi() | hi()); }
   default Mask and(Mask o) { return new Masker(o.lo() & lo(), o.hi() & hi()); }
   
   long hi();
   long lo();
}