package nathanw;
public class intAnd implements intOp {
    public int op(int a,int b) {return a & b;}
    }
package nathanw;
public interface intComp {
    public boolean comp(int a,int b);
    }
package nathanw;
public class intEq implements intComp {
    public boolean comp(int a, int b) {return a==b;}
    }
package nathanw;
public class intFirst implements intOp {
    public int op(int a,int b) {return a; }
    }
package nathanw;
public class intGt implements intComp {
    public boolean comp(int a, int b) {return a>b;}
    }
package nathanw;
public class intGtEq implements intComp {
    public boolean comp(int a, int b) {return a>=b;}
    }
package nathanw;
public class intLt implements intComp {
    public boolean comp(int a, int b) {return a<b;}
    }
package nathanw;
public class intLtEq implements intComp {
    public boolean comp(int a, int b) {return a<=b;}
    }
package nathanw;
public class intNonZero implements intComp {
    public boolean comp(int a, int b) {return (a!=0) && (b!=0);} 
    }
package nathanw;
public interface intOp {
    public int op(int a,int b);
    } 
package nathanw;
public class intOr implements intOp {
    public int op(int a,int b) {return (a | b);}
    }
package nathanw;
public class intSecond implements intOp {
    public int op(int a,int b) {return b; }
    }
package nathanw;
public class intXor implements intOp {
    public int op(int a,int b) {return a ^ b;}
    }
