Boolean values are the result of comparisons of values. Numbers and
strings are completely ordered. Booleans can be compared for
equality. Two values need to be of the same type to be compared, but
not all values of the same type can be compared: only those with comparable types (a concept directly lifted from Michelson)
bool itself. The comparison
operators are overloaded so they are defined on all comparable types.