@Override
    public String getStringRepresentation() {
        final StringBuilder sb = new StringBuilder();
        for (final Map.Entry<String, Function> var : functions.entrySet()) {
            sb.append(var.getKey()).append("\t");
            if (var.getValue() instanceof AbstractFunction) {
                sb.append("<function>");
            } else if (var.getValue() instanceof AbstractConstant) {
                sb.append("<constant>");
            }
            sb.append("\n");
        }
        return sb.toString();
    }