add restriction on non-empty types