use literals as value types; reduce expressions to literal when value is needed