package ceylon.language;

import com.redhat.ceylon.compiler.java.metadata.CaseTypes;
import com.redhat.ceylon.compiler.java.metadata.Ceylon;
import com.redhat.ceylon.compiler.java.metadata.Class;
import com.redhat.ceylon.compiler.java.metadata.Ignore;
import com.redhat.ceylon.compiler.java.metadata.ValueType;

@Ceylon(major = 3)
@Class(extendsType = "ceylon.language.IdentifiableObject")
@CaseTypes({"ceylon.language.true", "ceylon.language.false"})
@ValueType
public abstract class Boolean {

    @Ignore
    public static Boolean instance(boolean b) {
        return b ? true_.getTrue() : false_.getFalse();
    }

    abstract public boolean booleanValue();
    
    @Ignore
    public static java.lang.String toString(boolean value) {
        return (value) ? true_.getTrue().toString() : false_.getFalse().toString();
    }

}

@@ -823,12 +823,292 @@
 );%0A    %7D
+%0A    %0A    @Ignore%0A    public static boolean equals(boolean value, java.lang.Object that) %7B%0A        if (that instanceof Boolean) %7B%0A            Boolean s = (Boolean)that;%0A            return value = s.booleanValue();%0A        %7D%0A        else %7B%0A            return false;%0A        %7D%0A    %7D
 %0A%0A%7D%0A

Add a static Boolean.equals(), since it's a value type. See ceylon/ceylon-compiler#724.