[Demonstration 1]

[Buggy Method]
@Override
public boolean equals(Object obj) {
    if (obj.getClass().equals(getClass())) {
        return getMembers().equals(((Area) obj).getMembers());
    } else {
        return false;
    }
}

[Buggy Hunk]
return getMembers().equals(((Area)obj).getMembers());

[Patch]
return getPosMembers().equals(((Area)obj).getPosMembers());

[Demonstration 2]

[Buggy Method]
@Override
public Expression parseGrammar() throws GrammarException {
    Variable variable = VariableTable.getInstance().get(name);
    if (notNull(variable)) {
        System.out.println(name + " is currently " + variable.getValue());
    } else {
        System.out.println("variable " + name + " does not exist. ");
        return null;
    }
    if (!type.equals(variable.getType()))
        except("Expected variable '" + name + "' to be type '" + type.name() + "' but was '" + variable.getType().name() + "'", true);
    return new Expression(Expression.Type.Expression, variable.getType());
}

[Buggy Hunk]
if (!type.equals(variable.getType())) except("Expected variable '" + name + "' to be type '"

[Patch]
if (notNull(type) && !type.equals(variable.getType())) except("Expected variable '" + name + "' to be type '"

[Demonstration 3]

[Buggy Method]
@Override
public boolean isNotApproved(Grade grade) {
    return RE.equals(grade.getValue());
}

[Buggy Hunk]
return RE.equals(grade.getValue());

[Patch]
return R.equals(grade.getValue());