For Java developers... you can use Optional<Boolean> to store the elusive four possible booleans.
5, no? Null, Optional::empty, Optional(null), Optional(true), Optional(false)
5, no? Null, Optional::empty, Optional(null), Optional(true), Optional(false)