// Binary operation overload for (Bool)+(Bool) needed by interface Test returns Int, which is not bindable to the required Bool
interface Test {
    op (a: Self) + (b: Self) -> Self;
}

op (a: Bool) + (b: Bool) -> Int {
    return 1;
}

implement Test for Bool;