I've solved this (clumsily?) by making B a bool and the only values are T and Null. This feels real dirty since F is a possible but irrelevant value, but I'm basically trying to hack in a dependent type check by exploiting the null uniqueness semantics of postgres.
Does anyone have a good suggestion for a cleaner alternative? I kind of wish there were a nullable unit type in PG.