deepened the testing of the predicate constructor by checking if the
predicates 'took' using the toString method.
found a bug where 0-ary predicates are returned as 1-ary predicates
within predicate. Searching for bug.
Found out that Kremer defaults 0-ary predicates INTENTIONALLY as
predicates with the empty string as a single argument. I don't agree
with this, and am fixing it now.