public UnificationRuleMatcher(UnificationStrategy unifier, Predicate target) {
        if (unifier == null) {
            throw new IllegalArgumentException(
                    "The given unification strategy must not be null.");
        }
        if (target == null) {
            throw new IllegalArgumentException(
                    "The given target predicate must not be null.");
        }

        this.unifier = unifier;
        this.target = target;
    }