modified types more generally