New Issue: Should operators called on bool(8) result in bool?

19976, "mppf", "Should operators called on bool(8) result in bool?", "2022-06-13T16:00:13Z"

Consider the following program that calls ^ with two bool values of nonstandard bool size:

var b16 : bool(16)  = true;
writeln("b16 = ", b16, " : ", b16.type:string);

var z = b16 ^ b16;
writeln("x ^ y = ", z, " : ", z.type:string);

This program currently has this output:

b16 = true : bool(16)
x ^ y = false : bool

Meaning, that b16 ^ b16 results in a bool (of default size) rather than a bool(16).

Do we want this behavior? Or do we want x ^ y to result in bool(16) in this case?

Either way, at a glance, it didn't look to me like the spec discusses this. E.g. I would expect Types — Chapel Documentation 1.26 to bring it up (and for that matter, the title can't be "the bool type" if we have many bool types).