> data Predicate a = Any | Pred (S.Set a) data Product a = Pany | Prod (S.Set(Predicate a, S.Set(Product a)))
Does this fit:
data Predicate a = Any | Pred a data Product a = Pred' (Predicate a) | Prod (Product a)
?