I am thinking to follow the same coding standard as LLVM, so use `TriState` maybe?