Propellor представляет собой систему, которую он развертывает как [Property]
, и для упрощения предположим, что data Property = Property (Set Port) SatisfyProperty
Таким образом, может существовать свойство apacheInstalled
, которое использует порты 80 и 443, а также свойство torBridge
, которое использует порт 443. Для системы не имеет смысла иметь оба свойства одновременно, поскольку они используют один и тот же порт 443.
Интересно, есть ли способ проверки типа, чтобы предотвратить присвоение системы и тому и другому? Тогда конфликты порта могут быть пойманы во время сборки. Я предполагаю, что этот тип уровня будет первым шагом, но я не знаю, как второй.