Set<Basic> freeSymbols() { return args.fold(<Basic>{}, (Set<Basic> acc, Basic arg) { acc.addAll(arg.freeSymbols()); return acc; }); }