This hides the Bool# constructor and explicitly exports the needed patterns and combinators from the module.
There were a few places where we were pattern matching on Bool# and using isTrue# on the representation. I have replaced these by a new inlined isTrueBool# function, which I export from Utils.UBool.
Please only apply this patch if this preserves the desirable generated core. I prefer to have this be abstract for reasons of hygiene, but I don't want to inadvertently defeat the purpose of using unboxed integers.