Каковы различные варианты использования типов объединения и типов пересечения? В последнее время было много шума об этих функциях системы типов, но почему-то я никогда не чувствовал необходимости ни в одном из них!