Make Utils.UBool.Bool an abstract type #18

Closed jonmsterling.com
targeting main
Closed opened by and assigned to jonmsterling.com
targeting main

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.

This pull request has no versions submitted yet.