<p dir="ltr">> data Predicate a = Any | Pred (S.Set a)<br>
data Product a = Pany | Prod (S.Set(Predicate a, S.Set(Product a)))</p>
<p dir="ltr">Does this fit:</p>
<p dir="ltr">data Predicate a = Any | Pred  a<br>
data Product a = Pred' (Predicate a) |  Prod (Product a)</p>
<p dir="ltr">?</p>