Boolean semantics of types