class SubroutineDefinition {

    @Override
    public boolean equals(final Object obj) {
        if (!(obj instanceof SubroutineDefinition)) {
            return false;
        }

        if (obj == this) {
            return true;
        }

        final SubroutineDefinition other = (SubroutineDefinition) obj;
        return new EqualsBuilder().append(name, other.name).append(argumentNames, other.argumentNames).isEquals();
    }

    public  SubroutineDefinition(final String name, final List<String> argumentNames);

}