package jazz.lang;
///////////////////////////////////////////////////////////////////////////////
//
// Booleans
//
///////////////////////////////////////////////////////////////////////////////
public native final class boolean implements BooleanAlgebra {
}
///////////////////////////////////////////////////////////////////////////////
//
// Implementation
//
///////////////////////////////////////////////////////////////////////////////
Builtin.(&)(x@boolean, y@boolean) = x ? y : (y ? false : false);
Builtin.(|)(x@boolean, y@boolean) = x ? (y ? true : true) : y;
Builtin.(^)(x@boolean, y@boolean) = (x & !y) | (y & !x);
Builtin.(~)(x@boolean) = !x;
Builtin.cond(x@boolean, y@boolean, z@boolean) = x ? y : z;