private void ReadPredicates(CompoundExpression exp, Domain d)
 {
     foreach (Expression e in exp.SubExpressions)
     {
         CompoundExpression eSub = (CompoundExpression)e;
         if (eSub.Type == ":private")
         {
             ReadPrivatePredicates(eSub, d);
         }
         else
         {
             Predicate p = ReadPredicate(eSub, d);
             d.AddPublicPredicate(p);
         }
     }
 }