public boolean apply(Unifier unifier) {
   // XXX Hack to fix the problem of an empty unifier's application returning empty
   if (unifier.isEmpty()) {
     return true;
   }
   // Since this implementation relies on a Jason binding, we have to force our unifier
   // to be Jason's
   if (unifier instanceof jason.asSemantics.Unifier) {
     return this.apply((jason.asSemantics.Unifier) unifier);
   } else {
     return false;
   }
 }
 public boolean unifies(Proposition proposition) {
   Unifier un = new UnifierImpl();
   return un.unifies(this, proposition);
 }