propositions as types!