From 4d5723165c3565356ceca066dcdc4431f4f2108b Mon Sep 17 00:00:00 2001 From: Krzysztof Parzyszek Date: Wed, 29 Jan 2025 07:08:20 -0600 Subject: [PATCH 1/2] Move all templates from Utils.h to Utils.cpp --- flang/include/flang/Lower/Support/Utils.h | 7647 ++++++++++++++++++-- flang/lib/Lower/CMakeLists.txt | 1 + flang/lib/Lower/Support/Utils.cpp | 7757 +++++++++++++++++++++ 3 files changed, 15009 insertions(+), 396 deletions(-) create mode 100644 flang/lib/Lower/Support/Utils.cpp diff --git a/flang/include/flang/Lower/Support/Utils.h b/flang/include/flang/Lower/Support/Utils.h index 1cc74521e22d8..26c1794030017 100644 --- a/flang/include/flang/Lower/Support/Utils.h +++ b/flang/include/flang/Lower/Support/Utils.h @@ -106,247 +106,96 @@ class HashEvaluateExpr { public: // A Se::Symbol is the only part of an Fortran::evaluate::Expr with an // identity property. - static unsigned getHashValue(const Fortran::semantics::Symbol &x) { - return static_cast(reinterpret_cast(&x)); - } + static unsigned getHashValue(const Fortran::semantics::Symbol &x); template - static unsigned getHashValue(const Fortran::common::Indirection &x) { - return getHashValue(x.value()); - } - template - static unsigned getHashValue(const std::optional &x) { - if (x.has_value()) - return getHashValue(x.value()); - return 0u; - } - static unsigned getHashValue(const Fortran::evaluate::Subscript &x) { - return Fortran::common::visit( - [&](const auto &v) { return getHashValue(v); }, x.u); - } - static unsigned getHashValue(const Fortran::evaluate::Triplet &x) { - return getHashValue(x.lower()) - getHashValue(x.upper()) * 5u - - getHashValue(x.stride()) * 11u; - } - static unsigned getHashValue(const Fortran::evaluate::Component &x) { - return getHashValue(x.base()) * 83u - getHashValue(x.GetLastSymbol()); - } - static unsigned getHashValue(const Fortran::evaluate::ArrayRef &x) { - unsigned subs = 1u; - for (const Fortran::evaluate::Subscript &v : x.subscript()) - subs -= getHashValue(v); - return getHashValue(x.base()) * 89u - subs; - } - static unsigned getHashValue(const Fortran::evaluate::CoarrayRef &x) { - unsigned subs = 1u; - for (const Fortran::evaluate::Subscript &v : x.subscript()) - subs -= getHashValue(v); - unsigned cosubs = 3u; - for (const Fortran::evaluate::Expr &v : - x.cosubscript()) - cosubs -= getHashValue(v); - unsigned syms = 7u; - for (const Fortran::evaluate::SymbolRef &v : x.base()) - syms += getHashValue(v); - return syms * 97u - subs - cosubs + getHashValue(x.stat()) + 257u + - getHashValue(x.team()); - } - static unsigned getHashValue(const Fortran::evaluate::NamedEntity &x) { - if (x.IsSymbol()) - return getHashValue(x.GetFirstSymbol()) * 11u; - return getHashValue(x.GetComponent()) * 13u; - } - static unsigned getHashValue(const Fortran::evaluate::DataRef &x) { - return Fortran::common::visit( - [&](const auto &v) { return getHashValue(v); }, x.u); - } - static unsigned getHashValue(const Fortran::evaluate::ComplexPart &x) { - return getHashValue(x.complex()) - static_cast(x.part()); - } + static unsigned getHashValue(const Fortran::common::Indirection &x); + template static unsigned getHashValue(const std::optional &x); + static unsigned getHashValue(const Fortran::evaluate::Subscript &x); + static unsigned getHashValue(const Fortran::evaluate::Triplet &x); + static unsigned getHashValue(const Fortran::evaluate::Component &x); + static unsigned getHashValue(const Fortran::evaluate::ArrayRef &x); + static unsigned getHashValue(const Fortran::evaluate::CoarrayRef &x); + static unsigned getHashValue(const Fortran::evaluate::NamedEntity &x); + static unsigned getHashValue(const Fortran::evaluate::DataRef &x); + static unsigned getHashValue(const Fortran::evaluate::ComplexPart &x); template static unsigned getHashValue( const Fortran::evaluate::Convert, TC2> - &x) { - return getHashValue(x.left()) - (static_cast(TC1) + 2u) - - (static_cast(KIND) + 5u); - } + &x); template static unsigned - getHashValue(const Fortran::evaluate::ComplexComponent &x) { - return getHashValue(x.left()) - - (static_cast(x.isImaginaryPart) + 1u) * 3u; - } + getHashValue(const Fortran::evaluate::ComplexComponent &x); template - static unsigned getHashValue(const Fortran::evaluate::Parentheses &x) { - return getHashValue(x.left()) * 17u; - } + static unsigned getHashValue(const Fortran::evaluate::Parentheses &x); template static unsigned getHashValue( - const Fortran::evaluate::Negate> &x) { - return getHashValue(x.left()) - (static_cast(TC) + 5u) - - (static_cast(KIND) + 7u); - } + const Fortran::evaluate::Negate> &x); template static unsigned getHashValue( - const Fortran::evaluate::Add> &x) { - return (getHashValue(x.left()) + getHashValue(x.right())) * 23u + - static_cast(TC) + static_cast(KIND); - } + const Fortran::evaluate::Add> &x); template static unsigned getHashValue( - const Fortran::evaluate::Subtract> &x) { - return (getHashValue(x.left()) - getHashValue(x.right())) * 19u + - static_cast(TC) + static_cast(KIND); - } + const Fortran::evaluate::Subtract> &x); template static unsigned getHashValue( - const Fortran::evaluate::Multiply> &x) { - return (getHashValue(x.left()) + getHashValue(x.right())) * 29u + - static_cast(TC) + static_cast(KIND); - } + const Fortran::evaluate::Multiply> &x); template static unsigned getHashValue( - const Fortran::evaluate::Divide> &x) { - return (getHashValue(x.left()) - getHashValue(x.right())) * 31u + - static_cast(TC) + static_cast(KIND); - } + const Fortran::evaluate::Divide> &x); template static unsigned getHashValue( - const Fortran::evaluate::Power> &x) { - return (getHashValue(x.left()) - getHashValue(x.right())) * 37u + - static_cast(TC) + static_cast(KIND); - } + const Fortran::evaluate::Power> &x); template static unsigned getHashValue( - const Fortran::evaluate::Extremum> &x) { - return (getHashValue(x.left()) + getHashValue(x.right())) * 41u + - static_cast(TC) + static_cast(KIND) + - static_cast(x.ordering) * 7u; - } + const Fortran::evaluate::Extremum> &x); template static unsigned getHashValue( const Fortran::evaluate::RealToIntPower> - &x) { - return (getHashValue(x.left()) - getHashValue(x.right())) * 43u + - static_cast(TC) + static_cast(KIND); - } + &x); template static unsigned - getHashValue(const Fortran::evaluate::ComplexConstructor &x) { - return (getHashValue(x.left()) - getHashValue(x.right())) * 47u + - static_cast(KIND); - } + getHashValue(const Fortran::evaluate::ComplexConstructor &x); template - static unsigned getHashValue(const Fortran::evaluate::Concat &x) { - return (getHashValue(x.left()) - getHashValue(x.right())) * 53u + - static_cast(KIND); - } + static unsigned getHashValue(const Fortran::evaluate::Concat &x); template - static unsigned getHashValue(const Fortran::evaluate::SetLength &x) { - return (getHashValue(x.left()) - getHashValue(x.right())) * 59u + - static_cast(KIND); - } - static unsigned getHashValue(const Fortran::semantics::SymbolRef &sym) { - return getHashValue(sym.get()); - } - static unsigned getHashValue(const Fortran::evaluate::Substring &x) { - return 61u * - Fortran::common::visit( - [&](const auto &p) { return getHashValue(p); }, x.parent()) - - getHashValue(x.lower()) - (getHashValue(x.lower()) + 1u); - } + static unsigned getHashValue(const Fortran::evaluate::SetLength &x); + static unsigned getHashValue(const Fortran::semantics::SymbolRef &sym); + static unsigned getHashValue(const Fortran::evaluate::Substring &x); static unsigned - getHashValue(const Fortran::evaluate::StaticDataObject::Pointer &x) { - return llvm::hash_value(x->name()); - } - static unsigned getHashValue(const Fortran::evaluate::SpecificIntrinsic &x) { - return llvm::hash_value(x.name); - } + getHashValue(const Fortran::evaluate::StaticDataObject::Pointer &x); + static unsigned getHashValue(const Fortran::evaluate::SpecificIntrinsic &x); template - static unsigned getHashValue(const Fortran::evaluate::Constant &x) { - // FIXME: Should hash the content. - return 103u; - } - static unsigned getHashValue(const Fortran::evaluate::ActualArgument &x) { - if (const Fortran::evaluate::Symbol *sym = x.GetAssumedTypeDummy()) - return getHashValue(*sym); - return getHashValue(*x.UnwrapExpr()); - } - static unsigned - getHashValue(const Fortran::evaluate::ProcedureDesignator &x) { - return Fortran::common::visit( - [&](const auto &v) { return getHashValue(v); }, x.u); - } - static unsigned getHashValue(const Fortran::evaluate::ProcedureRef &x) { - unsigned args = 13u; - for (const std::optional &v : - x.arguments()) - args -= getHashValue(v); - return getHashValue(x.proc()) * 101u - args; - } + static unsigned getHashValue(const Fortran::evaluate::Constant &x); + static unsigned getHashValue(const Fortran::evaluate::ActualArgument &x); + static unsigned getHashValue(const Fortran::evaluate::ProcedureDesignator &x); + static unsigned getHashValue(const Fortran::evaluate::ProcedureRef &x); template + static unsigned getHashValue(const Fortran::evaluate::ArrayConstructor &x); + static unsigned getHashValue(const Fortran::evaluate::ImpliedDoIndex &x); + static unsigned getHashValue(const Fortran::evaluate::TypeParamInquiry &x); + static unsigned getHashValue(const Fortran::evaluate::DescriptorInquiry &x); static unsigned - getHashValue(const Fortran::evaluate::ArrayConstructor &x) { - // FIXME: hash the contents. - return 127u; - } - static unsigned getHashValue(const Fortran::evaluate::ImpliedDoIndex &x) { - return llvm::hash_value(toStringRef(x.name).str()) * 131u; - } - static unsigned getHashValue(const Fortran::evaluate::TypeParamInquiry &x) { - return getHashValue(x.base()) * 137u - getHashValue(x.parameter()) * 3u; - } - static unsigned getHashValue(const Fortran::evaluate::DescriptorInquiry &x) { - return getHashValue(x.base()) * 139u - - static_cast(x.field()) * 13u + - static_cast(x.dimension()); - } - static unsigned - getHashValue(const Fortran::evaluate::StructureConstructor &x) { - // FIXME: hash the contents. - return 149u; - } + getHashValue(const Fortran::evaluate::StructureConstructor &x); template - static unsigned getHashValue(const Fortran::evaluate::Not &x) { - return getHashValue(x.left()) * 61u + static_cast(KIND); - } + static unsigned getHashValue(const Fortran::evaluate::Not &x); template static unsigned - getHashValue(const Fortran::evaluate::LogicalOperation &x) { - unsigned result = getHashValue(x.left()) + getHashValue(x.right()); - return result * 67u + static_cast(x.logicalOperator) * 5u; - } + getHashValue(const Fortran::evaluate::LogicalOperation &x); template static unsigned getHashValue( const Fortran::evaluate::Relational> - &x) { - return (getHashValue(x.left()) + getHashValue(x.right())) * 71u + - static_cast(TC) + static_cast(KIND) + - static_cast(x.opr) * 11u; - } + &x); template - static unsigned getHashValue(const Fortran::evaluate::Expr &x) { - return Fortran::common::visit( - [&](const auto &v) { return getHashValue(v); }, x.u); - } + static unsigned getHashValue(const Fortran::evaluate::Expr &x); static unsigned getHashValue( - const Fortran::evaluate::Relational &x) { - return Fortran::common::visit( - [&](const auto &v) { return getHashValue(v); }, x.u); - } + const Fortran::evaluate::Relational &x); template - static unsigned getHashValue(const Fortran::evaluate::Designator &x) { - return Fortran::common::visit( - [&](const auto &v) { return getHashValue(v); }, x.u); - } + static unsigned getHashValue(const Fortran::evaluate::Designator &x); template static unsigned - getHashValue(const Fortran::evaluate::value::Integer &x) { - return static_cast(x.ToSInt()); - } - static unsigned getHashValue(const Fortran::evaluate::NullPointer &x) { - return ~179u; - } + getHashValue(const Fortran::evaluate::value::Integer &x); + static unsigned getHashValue(const Fortran::evaluate::NullPointer &x); }; // Define the is equals test for using Fortran::evaluate::Expr values with @@ -356,278 +205,129 @@ class IsEqualEvaluateExpr { // A Se::Symbol is the only part of an Fortran::evaluate::Expr with an // identity property. static bool isEqual(const Fortran::semantics::Symbol &x, - const Fortran::semantics::Symbol &y) { - return isEqual(&x, &y); - } + const Fortran::semantics::Symbol &y); static bool isEqual(const Fortran::semantics::Symbol *x, - const Fortran::semantics::Symbol *y) { - return x == y; - } + const Fortran::semantics::Symbol *y); template static bool isEqual(const Fortran::common::Indirection &x, - const Fortran::common::Indirection &y) { - return isEqual(x.value(), y.value()); - } + const Fortran::common::Indirection &y); template - static bool isEqual(const std::optional &x, const std::optional &y) { - if (x.has_value() && y.has_value()) - return isEqual(x.value(), y.value()); - return !x.has_value() && !y.has_value(); - } + static bool isEqual(const std::optional &x, const std::optional &y); template - static bool isEqual(const std::vector &x, const std::vector &y) { - if (x.size() != y.size()) - return false; - const std::size_t size = x.size(); - for (std::remove_const_t i = 0; i < size; ++i) - if (!isEqual(x[i], y[i])) - return false; - return true; - } + static bool isEqual(const std::vector &x, const std::vector &y); static bool isEqual(const Fortran::evaluate::Subscript &x, - const Fortran::evaluate::Subscript &y) { - return Fortran::common::visit( - [&](const auto &v, const auto &w) { return isEqual(v, w); }, x.u, y.u); - } + const Fortran::evaluate::Subscript &y); static bool isEqual(const Fortran::evaluate::Triplet &x, - const Fortran::evaluate::Triplet &y) { - return isEqual(x.lower(), y.lower()) && isEqual(x.upper(), y.upper()) && - isEqual(x.stride(), y.stride()); - } + const Fortran::evaluate::Triplet &y); static bool isEqual(const Fortran::evaluate::Component &x, - const Fortran::evaluate::Component &y) { - return isEqual(x.base(), y.base()) && - isEqual(x.GetLastSymbol(), y.GetLastSymbol()); - } + const Fortran::evaluate::Component &y); static bool isEqual(const Fortran::evaluate::ArrayRef &x, - const Fortran::evaluate::ArrayRef &y) { - return isEqual(x.base(), y.base()) && isEqual(x.subscript(), y.subscript()); - } + const Fortran::evaluate::ArrayRef &y); static bool isEqual(const Fortran::evaluate::CoarrayRef &x, - const Fortran::evaluate::CoarrayRef &y) { - return isEqual(x.base(), y.base()) && - isEqual(x.subscript(), y.subscript()) && - isEqual(x.cosubscript(), y.cosubscript()) && - isEqual(x.stat(), y.stat()) && isEqual(x.team(), y.team()); - } + const Fortran::evaluate::CoarrayRef &y); static bool isEqual(const Fortran::evaluate::NamedEntity &x, - const Fortran::evaluate::NamedEntity &y) { - if (x.IsSymbol() && y.IsSymbol()) - return isEqual(x.GetFirstSymbol(), y.GetFirstSymbol()); - return !x.IsSymbol() && !y.IsSymbol() && - isEqual(x.GetComponent(), y.GetComponent()); - } + const Fortran::evaluate::NamedEntity &y); static bool isEqual(const Fortran::evaluate::DataRef &x, - const Fortran::evaluate::DataRef &y) { - return Fortran::common::visit( - [&](const auto &v, const auto &w) { return isEqual(v, w); }, x.u, y.u); - } + const Fortran::evaluate::DataRef &y); static bool isEqual(const Fortran::evaluate::ComplexPart &x, - const Fortran::evaluate::ComplexPart &y) { - return isEqual(x.complex(), y.complex()) && x.part() == y.part(); - } + const Fortran::evaluate::ComplexPart &y); template static bool isEqual(const Fortran::evaluate::Convert &x, - const Fortran::evaluate::Convert &y) { - return isEqual(x.left(), y.left()); - } + const Fortran::evaluate::Convert &y); template static bool isEqual(const Fortran::evaluate::ComplexComponent &x, - const Fortran::evaluate::ComplexComponent &y) { - return isEqual(x.left(), y.left()) && - x.isImaginaryPart == y.isImaginaryPart; - } + const Fortran::evaluate::ComplexComponent &y); template static bool isEqual(const Fortran::evaluate::Parentheses &x, - const Fortran::evaluate::Parentheses &y) { - return isEqual(x.left(), y.left()); - } + const Fortran::evaluate::Parentheses &y); template static bool isEqual(const Fortran::evaluate::Negate &x, - const Fortran::evaluate::Negate &y) { - return isEqual(x.left(), y.left()); - } - template - static bool isBinaryEqual(const A &x, const A &y) { - return isEqual(x.left(), y.left()) && isEqual(x.right(), y.right()); - } + const Fortran::evaluate::Negate &y); + template static bool isBinaryEqual(const A &x, const A &y); template static bool isEqual(const Fortran::evaluate::Add &x, - const Fortran::evaluate::Add &y) { - return isBinaryEqual(x, y); - } + const Fortran::evaluate::Add &y); template static bool isEqual(const Fortran::evaluate::Subtract &x, - const Fortran::evaluate::Subtract &y) { - return isBinaryEqual(x, y); - } + const Fortran::evaluate::Subtract &y); template static bool isEqual(const Fortran::evaluate::Multiply &x, - const Fortran::evaluate::Multiply &y) { - return isBinaryEqual(x, y); - } + const Fortran::evaluate::Multiply &y); template static bool isEqual(const Fortran::evaluate::Divide &x, - const Fortran::evaluate::Divide &y) { - return isBinaryEqual(x, y); - } + const Fortran::evaluate::Divide &y); template static bool isEqual(const Fortran::evaluate::Power &x, - const Fortran::evaluate::Power &y) { - return isBinaryEqual(x, y); - } + const Fortran::evaluate::Power &y); template static bool isEqual(const Fortran::evaluate::Extremum &x, - const Fortran::evaluate::Extremum &y) { - return isBinaryEqual(x, y); - } + const Fortran::evaluate::Extremum &y); template static bool isEqual(const Fortran::evaluate::RealToIntPower &x, - const Fortran::evaluate::RealToIntPower &y) { - return isBinaryEqual(x, y); - } + const Fortran::evaluate::RealToIntPower &y); template static bool isEqual(const Fortran::evaluate::ComplexConstructor &x, - const Fortran::evaluate::ComplexConstructor &y) { - return isBinaryEqual(x, y); - } + const Fortran::evaluate::ComplexConstructor &y); template static bool isEqual(const Fortran::evaluate::Concat &x, - const Fortran::evaluate::Concat &y) { - return isBinaryEqual(x, y); - } + const Fortran::evaluate::Concat &y); template static bool isEqual(const Fortran::evaluate::SetLength &x, - const Fortran::evaluate::SetLength &y) { - return isBinaryEqual(x, y); - } + const Fortran::evaluate::SetLength &y); static bool isEqual(const Fortran::semantics::SymbolRef &x, - const Fortran::semantics::SymbolRef &y) { - return isEqual(x.get(), y.get()); - } + const Fortran::semantics::SymbolRef &y); static bool isEqual(const Fortran::evaluate::Substring &x, - const Fortran::evaluate::Substring &y) { - return Fortran::common::visit( - [&](const auto &p, const auto &q) { return isEqual(p, q); }, - x.parent(), y.parent()) && - isEqual(x.lower(), y.lower()) && isEqual(x.upper(), y.upper()); - } + const Fortran::evaluate::Substring &y); static bool isEqual(const Fortran::evaluate::StaticDataObject::Pointer &x, - const Fortran::evaluate::StaticDataObject::Pointer &y) { - return x->name() == y->name(); - } + const Fortran::evaluate::StaticDataObject::Pointer &y); static bool isEqual(const Fortran::evaluate::SpecificIntrinsic &x, - const Fortran::evaluate::SpecificIntrinsic &y) { - return x.name == y.name; - } + const Fortran::evaluate::SpecificIntrinsic &y); template static bool isEqual(const Fortran::evaluate::Constant &x, - const Fortran::evaluate::Constant &y) { - return x == y; - } + const Fortran::evaluate::Constant &y); static bool isEqual(const Fortran::evaluate::ActualArgument &x, - const Fortran::evaluate::ActualArgument &y) { - if (const Fortran::evaluate::Symbol *xs = x.GetAssumedTypeDummy()) { - if (const Fortran::evaluate::Symbol *ys = y.GetAssumedTypeDummy()) - return isEqual(*xs, *ys); - return false; - } - return !y.GetAssumedTypeDummy() && - isEqual(*x.UnwrapExpr(), *y.UnwrapExpr()); - } + const Fortran::evaluate::ActualArgument &y); static bool isEqual(const Fortran::evaluate::ProcedureDesignator &x, - const Fortran::evaluate::ProcedureDesignator &y) { - return Fortran::common::visit( - [&](const auto &v, const auto &w) { return isEqual(v, w); }, x.u, y.u); - } + const Fortran::evaluate::ProcedureDesignator &y); static bool isEqual(const Fortran::evaluate::ProcedureRef &x, - const Fortran::evaluate::ProcedureRef &y) { - return isEqual(x.proc(), y.proc()) && isEqual(x.arguments(), y.arguments()); - } + const Fortran::evaluate::ProcedureRef &y); template static bool isEqual(const Fortran::evaluate::ArrayConstructor &x, - const Fortran::evaluate::ArrayConstructor &y) { - llvm::report_fatal_error("not implemented"); - } + const Fortran::evaluate::ArrayConstructor &y); static bool isEqual(const Fortran::evaluate::ImpliedDoIndex &x, - const Fortran::evaluate::ImpliedDoIndex &y) { - return toStringRef(x.name) == toStringRef(y.name); - } + const Fortran::evaluate::ImpliedDoIndex &y); static bool isEqual(const Fortran::evaluate::TypeParamInquiry &x, - const Fortran::evaluate::TypeParamInquiry &y) { - return isEqual(x.base(), y.base()) && isEqual(x.parameter(), y.parameter()); - } + const Fortran::evaluate::TypeParamInquiry &y); static bool isEqual(const Fortran::evaluate::DescriptorInquiry &x, - const Fortran::evaluate::DescriptorInquiry &y) { - return isEqual(x.base(), y.base()) && x.field() == y.field() && - x.dimension() == y.dimension(); - } + const Fortran::evaluate::DescriptorInquiry &y); static bool isEqual(const Fortran::evaluate::StructureConstructor &x, - const Fortran::evaluate::StructureConstructor &y) { - const auto &xValues = x.values(); - const auto &yValues = y.values(); - if (xValues.size() != yValues.size()) - return false; - if (x.derivedTypeSpec() != y.derivedTypeSpec()) - return false; - for (const auto &[xSymbol, xValue] : xValues) { - auto yIt = yValues.find(xSymbol); - // This should probably never happen, since the derived type - // should be the same. - if (yIt == yValues.end()) - return false; - if (!isEqual(xValue, yIt->second)) - return false; - } - return true; - } + const Fortran::evaluate::StructureConstructor &y); template static bool isEqual(const Fortran::evaluate::Not &x, - const Fortran::evaluate::Not &y) { - return isEqual(x.left(), y.left()); - } + const Fortran::evaluate::Not &y); template static bool isEqual(const Fortran::evaluate::LogicalOperation &x, - const Fortran::evaluate::LogicalOperation &y) { - return isEqual(x.left(), y.left()) && isEqual(x.right(), y.right()); - } + const Fortran::evaluate::LogicalOperation &y); template static bool isEqual(const Fortran::evaluate::Relational &x, - const Fortran::evaluate::Relational &y) { - return isEqual(x.left(), y.left()) && isEqual(x.right(), y.right()); - } + const Fortran::evaluate::Relational &y); template static bool isEqual(const Fortran::evaluate::Expr &x, - const Fortran::evaluate::Expr &y) { - return Fortran::common::visit( - [&](const auto &v, const auto &w) { return isEqual(v, w); }, x.u, y.u); - } + const Fortran::evaluate::Expr &y); static bool isEqual(const Fortran::evaluate::Relational &x, - const Fortran::evaluate::Relational &y) { - return Fortran::common::visit( - [&](const auto &v, const auto &w) { return isEqual(v, w); }, x.u, y.u); - } + const Fortran::evaluate::Relational &y); template static bool isEqual(const Fortran::evaluate::Designator &x, - const Fortran::evaluate::Designator &y) { - return Fortran::common::visit( - [&](const auto &v, const auto &w) { return isEqual(v, w); }, x.u, y.u); - } + const Fortran::evaluate::Designator &y); template static bool isEqual(const Fortran::evaluate::value::Integer &x, - const Fortran::evaluate::value::Integer &y) { - return x == y; - } + const Fortran::evaluate::value::Integer &y); static bool isEqual(const Fortran::evaluate::NullPointer &x, - const Fortran::evaluate::NullPointer &y) { - return true; - } + const Fortran::evaluate::NullPointer &y); template , bool> = true> - static bool isEqual(const A &, const B &) { - return false; - } + static bool isEqual(const A &, const B &); }; static inline unsigned getHashValue(const Fortran::lower::SomeExpr *x) { @@ -671,4 +371,7159 @@ static inline bool isEqual(const Fortran::lower::SomeExpr *x, } } // end namespace Fortran::lower +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::common::Indirection &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::common::Indirection>, true> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexComponent<10> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexComponent<16> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexComponent<2> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexComponent<3> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexComponent<4> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexComponent<8> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexConstructor<10> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexConstructor<16> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexConstructor<2> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexConstructor<3> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexConstructor<4> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexConstructor<8> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Concat<1> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Concat<2> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Concat<4> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Character> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Character> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Character> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::LogicalOperation<1> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::LogicalOperation<2> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::LogicalOperation<4> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::LogicalOperation<8> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Not<1> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Not<2> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Not<4> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Not<8> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::SetLength<1> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::SetLength<2> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::SetLength<4> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::value::Integer<128> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const std::optional &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const std::optional> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const std::optional>> &); +extern template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const std::optional &); + +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::ComplexConstructor<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::ComplexConstructor<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::ComplexConstructor<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::ComplexConstructor<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::ComplexConstructor<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::ComplexConstructor<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Concat<1> &, const Fortran::evaluate::Concat<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Concat<2> &, const Fortran::evaluate::Concat<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Concat<4> &, const Fortran::evaluate::Concat<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::SetLength<1> &, const Fortran::evaluate::SetLength<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::SetLength<2> &, const Fortran::evaluate::SetLength<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::SetLength<4> &, const Fortran::evaluate::SetLength<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Indirection &, const Fortran::common::Reference &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Indirection &, const Fortran::evaluate::SpecificIntrinsic &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Indirection>, true> &, const Fortran::evaluate::Triplet &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Reference &, const Fortran::common::Indirection &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Reference &, const Fortran::evaluate::ArrayRef &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Reference &, const Fortran::evaluate::CoarrayRef &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Reference &, const Fortran::evaluate::ComplexPart &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Reference &, const Fortran::evaluate::Component &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Reference &, const Fortran::evaluate::SpecificIntrinsic &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Reference &, const Fortran::evaluate::Substring &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexConstructor<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexConstructor<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexConstructor<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexConstructor<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexConstructor<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexConstructor<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::DescriptorInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ImpliedDoIndex &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::TypeParamInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexComponent<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexComponent<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexComponent<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexComponent<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexComponent<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexComponent<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor &, const Fortran::evaluate::Constant &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor &, const Fortran::evaluate::Parentheses &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor &, const Fortran::evaluate::StructureConstructor &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Concat<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::SetLength<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Concat<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::SetLength<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Concat<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::SetLength<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexConstructor<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexConstructor<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexConstructor<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexConstructor<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexConstructor<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexConstructor<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::DescriptorInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ImpliedDoIndex &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::TypeParamInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::LogicalOperation<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Not<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::LogicalOperation<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Not<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::LogicalOperation<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Not<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Relational &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::LogicalOperation<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Not<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexComponent<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexComponent<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexComponent<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexComponent<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexComponent<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexComponent<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayRef &, const Fortran::common::Reference &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayRef &, const Fortran::evaluate::CoarrayRef &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayRef &, const Fortran::evaluate::ComplexPart &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayRef &, const Fortran::evaluate::Component &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayRef &, const Fortran::evaluate::Substring &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::CoarrayRef &, const Fortran::common::Reference &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::CoarrayRef &, const Fortran::evaluate::ArrayRef &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::CoarrayRef &, const Fortran::evaluate::ComplexPart &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::CoarrayRef &, const Fortran::evaluate::Component &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::CoarrayRef &, const Fortran::evaluate::Substring &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexPart &, const Fortran::common::Reference &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexPart &, const Fortran::evaluate::ArrayRef &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexPart &, const Fortran::evaluate::CoarrayRef &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexPart &, const Fortran::evaluate::Component &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Component &, const Fortran::common::Reference &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Component &, const Fortran::evaluate::ArrayRef &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Component &, const Fortran::evaluate::CoarrayRef &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Component &, const Fortran::evaluate::ComplexPart &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Component &, const Fortran::evaluate::Substring &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<1> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<1> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<1> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<1> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<1> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<1> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<1> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<1> &, const Fortran::evaluate::SetLength<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<2> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<2> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<2> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<2> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<2> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<2> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<2> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<2> &, const Fortran::evaluate::SetLength<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<4> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<4> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<4> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<4> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<4> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<4> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<4> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<4> &, const Fortran::evaluate::SetLength<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant &, const Fortran::evaluate::ArrayConstructor &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant &, const Fortran::evaluate::Parentheses &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant &, const Fortran::evaluate::StructureConstructor &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Concat<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::SetLength<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Concat<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::SetLength<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Concat<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::SetLength<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexConstructor<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexConstructor<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexConstructor<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexConstructor<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexConstructor<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexConstructor<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::DescriptorInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ImpliedDoIndex &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::TypeParamInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::LogicalOperation<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Not<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::LogicalOperation<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Not<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::LogicalOperation<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Not<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Relational &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::LogicalOperation<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Not<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexComponent<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexComponent<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexComponent<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexComponent<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexComponent<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexComponent<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ComplexConstructor<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ComplexConstructor<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ComplexConstructor<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ComplexConstructor<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ComplexConstructor<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ComplexConstructor<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::DescriptorInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ImpliedDoIndex &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::TypeParamInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::DescriptorInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ImpliedDoIndex &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::TypeParamInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::DescriptorInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ImpliedDoIndex &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::TypeParamInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::LogicalOperation<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Not<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::LogicalOperation<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Not<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::LogicalOperation<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Not<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Relational &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::LogicalOperation<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Not<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ComplexComponent<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ComplexComponent<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ComplexComponent<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ComplexComponent<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ComplexComponent<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ComplexComponent<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ComplexComponent<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ComplexComponent<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ComplexComponent<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ComplexComponent<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ComplexComponent<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ComplexComponent<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ComplexComponent<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ComplexComponent<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ComplexComponent<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ComplexComponent<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ComplexComponent<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ComplexComponent<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Concat<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::SetLength<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Concat<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::SetLength<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Concat<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::SetLength<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DataRef &, const std::shared_ptr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::ImpliedDoIndex &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::TypeParamInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::StructureConstructor &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexConstructor<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexConstructor<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexConstructor<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexConstructor<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexConstructor<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexConstructor<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::DescriptorInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ImpliedDoIndex &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::TypeParamInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::LogicalOperation<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Not<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::LogicalOperation<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Not<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::LogicalOperation<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Not<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Relational &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::LogicalOperation<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Not<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexComponent<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexComponent<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexComponent<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexComponent<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexComponent<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexComponent<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Concat<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::SetLength<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Concat<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::SetLength<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Concat<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::SetLength<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexConstructor<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexConstructor<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexConstructor<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexConstructor<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexConstructor<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexConstructor<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::DescriptorInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ImpliedDoIndex &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::TypeParamInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexComponent<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexComponent<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexComponent<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexComponent<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexComponent<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexComponent<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::NullPointer &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureDesignator &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureRef &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::value::Integer<128> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::NullPointer &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureDesignator &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureRef &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::value::Integer<128> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::NullPointer &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureDesignator &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureRef &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::value::Integer<128> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::NullPointer &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureDesignator &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureRef &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::value::Integer<128> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::NullPointer &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureDesignator &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureRef &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::value::Integer<128> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::NullPointer &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureDesignator &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureRef &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::value::Integer<128> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::NullPointer &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureDesignator &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureRef &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::value::Integer<128> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::DescriptorInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ImpliedDoIndex &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::TypeParamInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ComplexComponent<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ComplexComponent<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ComplexComponent<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ComplexComponent<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ComplexComponent<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ComplexComponent<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Concat<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::SetLength<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Concat<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::SetLength<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Concat<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::SetLength<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::StructureConstructor &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexConstructor<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexConstructor<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexConstructor<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexConstructor<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexConstructor<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexConstructor<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::DescriptorInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ImpliedDoIndex &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::TypeParamInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::LogicalOperation<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Not<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::LogicalOperation<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Not<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::LogicalOperation<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Not<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Relational &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::LogicalOperation<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Not<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexComponent<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexComponent<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexComponent<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexComponent<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexComponent<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexComponent<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Concat<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::SetLength<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Concat<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::SetLength<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Concat<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::SetLength<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::DescriptorInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::TypeParamInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<1> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<1> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<1> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<1> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<1> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<1> &, const Fortran::evaluate::Not<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<1> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<2> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<2> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<2> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<2> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<2> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<2> &, const Fortran::evaluate::Not<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<2> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<4> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<4> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<4> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<4> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<4> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<4> &, const Fortran::evaluate::Not<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<4> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<4> &, const Fortran::evaluate::Relational &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<8> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<8> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<8> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<8> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<8> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<8> &, const Fortran::evaluate::Not<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<8> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexConstructor<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexConstructor<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexConstructor<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexConstructor<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexConstructor<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexConstructor<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::DescriptorInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ImpliedDoIndex &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::TypeParamInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexComponent<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexComponent<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexComponent<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexComponent<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexComponent<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexComponent<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexConstructor<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexConstructor<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexConstructor<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexConstructor<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexConstructor<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexConstructor<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::DescriptorInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ImpliedDoIndex &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::TypeParamInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexComponent<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexComponent<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexComponent<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexComponent<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexComponent<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexComponent<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<1> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<1> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<1> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<1> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<1> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<1> &, const Fortran::evaluate::LogicalOperation<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<1> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<2> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<2> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<2> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<2> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<2> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<2> &, const Fortran::evaluate::LogicalOperation<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<2> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<4> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<4> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<4> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<4> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<4> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<4> &, const Fortran::evaluate::LogicalOperation<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<4> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<4> &, const Fortran::evaluate::Relational &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<8> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<8> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<8> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<8> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<8> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<8> &, const Fortran::evaluate::LogicalOperation<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<8> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::NullPointer &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::NullPointer &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::NullPointer &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::NullPointer &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::NullPointer &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::NullPointer &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::NullPointer &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::NullPointer &, const Fortran::evaluate::ProcedureDesignator &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::NullPointer &, const Fortran::evaluate::ProcedureRef &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::NullPointer &, const Fortran::evaluate::value::Integer<128> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexConstructor<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexConstructor<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexConstructor<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexConstructor<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexConstructor<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexConstructor<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::DescriptorInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ImpliedDoIndex &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::TypeParamInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::LogicalOperation<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Not<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::LogicalOperation<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Not<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::LogicalOperation<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Not<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Relational &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::LogicalOperation<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Not<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexComponent<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexComponent<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexComponent<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexComponent<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexComponent<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexComponent<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Concat<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::SetLength<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Concat<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::SetLength<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Concat<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::SetLength<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses &, const Fortran::evaluate::ArrayConstructor &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses &, const Fortran::evaluate::Constant &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses &, const Fortran::evaluate::StructureConstructor &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexConstructor<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexConstructor<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexConstructor<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexConstructor<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexConstructor<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexConstructor<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::DescriptorInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ImpliedDoIndex &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::TypeParamInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexComponent<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexComponent<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexComponent<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexComponent<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexComponent<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexComponent<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureDesignator &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureDesignator &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureDesignator &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureDesignator &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureDesignator &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureDesignator &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureDesignator &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureDesignator &, const Fortran::evaluate::NullPointer &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureDesignator &, const Fortran::evaluate::ProcedureRef &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureDesignator &, const Fortran::evaluate::value::Integer<128> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureRef &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureRef &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureRef &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureRef &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureRef &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureRef &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureRef &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureRef &, const Fortran::evaluate::NullPointer &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureRef &, const Fortran::evaluate::ProcedureDesignator &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureRef &, const Fortran::evaluate::value::Integer<128> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexConstructor<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexConstructor<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexConstructor<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexConstructor<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexConstructor<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexConstructor<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexComponent<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexComponent<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexComponent<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexComponent<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexComponent<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexComponent<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational &, const Fortran::evaluate::LogicalOperation<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational &, const Fortran::evaluate::Not<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<1> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<1> &, const Fortran::evaluate::Concat<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<1> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<1> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<1> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<1> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<1> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<1> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<2> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<2> &, const Fortran::evaluate::Concat<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<2> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<2> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<2> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<2> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<2> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<2> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<4> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<4> &, const Fortran::evaluate::Concat<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<4> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<4> &, const Fortran::evaluate::Convert> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<4> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<4> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<4> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<4> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SpecificIntrinsic &, const Fortran::common::Indirection &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SpecificIntrinsic &, const Fortran::common::Reference &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::StructureConstructor &, const Fortran::evaluate::ArrayConstructor &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::StructureConstructor &, const Fortran::evaluate::Constant &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::StructureConstructor &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::StructureConstructor &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::StructureConstructor &, const Fortran::evaluate::Parentheses &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Substring &, const Fortran::common::Reference &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Substring &, const Fortran::evaluate::ArrayRef &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Substring &, const Fortran::evaluate::CoarrayRef &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Substring &, const Fortran::evaluate::Component &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexConstructor<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexConstructor<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexConstructor<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexConstructor<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexConstructor<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexConstructor<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::DescriptorInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ImpliedDoIndex &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::TypeParamInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexComponent<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexComponent<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexComponent<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexComponent<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexComponent<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexComponent<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Triplet &, const Fortran::common::Indirection>, true> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::DescriptorInquiry &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::FunctionRef> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::ImpliedDoIndex &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::value::Integer<128> &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::value::Integer<128> &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::value::Integer<128> &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::value::Integer<128> &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::value::Integer<128> &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::value::Integer<128> &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::value::Integer<128> &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::value::Integer<128> &, const Fortran::evaluate::NullPointer &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::value::Integer<128> &, const Fortran::evaluate::ProcedureDesignator &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::value::Integer<128> &, const Fortran::evaluate::ProcedureRef &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const std::shared_ptr &, const Fortran::evaluate::DataRef &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Indirection &, const Fortran::common::Indirection &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Indirection, true> &, const Fortran::common::Indirection, true> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Indirection>, true> &, const Fortran::common::Indirection>, true> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::ComplexComponent<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::ComplexComponent<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::ComplexComponent<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::ComplexComponent<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::ComplexComponent<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::ComplexComponent<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::ComplexConstructor<10> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::ComplexConstructor<16> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::ComplexConstructor<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::ComplexConstructor<3> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::ComplexConstructor<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::ComplexConstructor<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<1> &, const Fortran::evaluate::Concat<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<2> &, const Fortran::evaluate::Concat<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<4> &, const Fortran::evaluate::Concat<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Character> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Character> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Character> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Character> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Character> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Character> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<1> &, const Fortran::evaluate::LogicalOperation<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<2> &, const Fortran::evaluate::LogicalOperation<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<4> &, const Fortran::evaluate::LogicalOperation<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<8> &, const Fortran::evaluate::LogicalOperation<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<1> &, const Fortran::evaluate::Not<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<2> &, const Fortran::evaluate::Not<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<4> &, const Fortran::evaluate::Not<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<8> &, const Fortran::evaluate::Not<8> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<1> &, const Fortran::evaluate::SetLength<1> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<2> &, const Fortran::evaluate::SetLength<2> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<4> &, const Fortran::evaluate::SetLength<4> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::value::Integer<128> &, const Fortran::evaluate::value::Integer<128> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const std::optional &, const std::optional &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const std::optional> &, const std::optional> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const std::optional>> &, const std::optional>> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const std::optional &, const std::optional &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const std::vector> &, const std::vector> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const std::vector>> &, const std::vector>> &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const std::vector &, const std::vector &); +extern template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const std::vector> &, const std::vector> &); + #endif // FORTRAN_LOWER_SUPPORT_UTILS_H diff --git a/flang/lib/Lower/CMakeLists.txt b/flang/lib/Lower/CMakeLists.txt index f611010765cb5..e995a320075f6 100644 --- a/flang/lib/Lower/CMakeLists.txt +++ b/flang/lib/Lower/CMakeLists.txt @@ -36,6 +36,7 @@ add_flang_library(FortranLower Runtime.cpp SymbolMap.cpp VectorSubscripts.cpp + Support/Utils.cpp DEPENDS CUFAttrs diff --git a/flang/lib/Lower/Support/Utils.cpp b/flang/lib/Lower/Support/Utils.cpp new file mode 100644 index 0000000000000..92638bcb2255e --- /dev/null +++ b/flang/lib/Lower/Support/Utils.cpp @@ -0,0 +1,7757 @@ +#include "flang/Lower/Support/Utils.h" + + +namespace Fortran::lower { + +unsigned HashEvaluateExpr::getHashValue(const Fortran::semantics::Symbol &x) { + return static_cast(reinterpret_cast(&x)); +} +template +unsigned +HashEvaluateExpr::getHashValue(const Fortran::common::Indirection &x) { + return HashEvaluateExpr::getHashValue(x.value()); +} +template +unsigned HashEvaluateExpr::getHashValue(const std::optional &x) { + if (x.has_value()) + return HashEvaluateExpr::getHashValue(x.value()); + return 0u; +} +unsigned HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subscript &x) { + return Fortran::common::visit( + [&](const auto &v) { return HashEvaluateExpr::getHashValue(v); }, x.u); +} +unsigned HashEvaluateExpr::getHashValue(const Fortran::evaluate::Triplet &x) { + return HashEvaluateExpr::getHashValue(x.lower()) - + getHashValue(x.upper()) * 5u - + HashEvaluateExpr::getHashValue(x.stride()) * 11u; +} +unsigned HashEvaluateExpr::getHashValue(const Fortran::evaluate::Component &x) { + return HashEvaluateExpr::getHashValue(x.base()) * 83u - + getHashValue(x.GetLastSymbol()); +} +unsigned HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayRef &x) { + unsigned subs = 1u; + for (const Fortran::evaluate::Subscript &v : x.subscript()) + subs -= HashEvaluateExpr::getHashValue(v); + return HashEvaluateExpr::getHashValue(x.base()) * 89u - subs; +} +unsigned +HashEvaluateExpr::getHashValue(const Fortran::evaluate::CoarrayRef &x) { + unsigned subs = 1u; + for (const Fortran::evaluate::Subscript &v : x.subscript()) + subs -= HashEvaluateExpr::getHashValue(v); + unsigned cosubs = 3u; + for (const Fortran::evaluate::Expr &v : + x.cosubscript()) + cosubs -= HashEvaluateExpr::getHashValue(v); + unsigned syms = 7u; + for (const Fortran::evaluate::SymbolRef &v : x.base()) + syms += HashEvaluateExpr::getHashValue(v); + return syms * 97u - subs - cosubs + HashEvaluateExpr::getHashValue(x.stat()) + + 257u + HashEvaluateExpr::getHashValue(x.team()); +} +unsigned +HashEvaluateExpr::getHashValue(const Fortran::evaluate::NamedEntity &x) { + if (x.IsSymbol()) + return HashEvaluateExpr::getHashValue(x.GetFirstSymbol()) * 11u; + return HashEvaluateExpr::getHashValue(x.GetComponent()) * 13u; +} +unsigned HashEvaluateExpr::getHashValue(const Fortran::evaluate::DataRef &x) { + return Fortran::common::visit( + [&](const auto &v) { return HashEvaluateExpr::getHashValue(v); }, x.u); +} +unsigned +HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexPart &x) { + return HashEvaluateExpr::getHashValue(x.complex()) - + static_cast(x.part()); +} +template +unsigned HashEvaluateExpr::getHashValue( + const Fortran::evaluate::Convert, TC2> + &x) { + return HashEvaluateExpr::getHashValue(x.left()) - + (static_cast(TC1) + 2u) - (static_cast(KIND) + 5u); +} +template +unsigned HashEvaluateExpr::getHashValue( + const Fortran::evaluate::ComplexComponent &x) { + return HashEvaluateExpr::getHashValue(x.left()) - + (static_cast(x.isImaginaryPart) + 1u) * 3u; +} +template +unsigned +HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses &x) { + return HashEvaluateExpr::getHashValue(x.left()) * 17u; +} +template +unsigned HashEvaluateExpr::getHashValue( + const Fortran::evaluate::Negate> &x) { + return HashEvaluateExpr::getHashValue(x.left()) - + (static_cast(TC) + 5u) - (static_cast(KIND) + 7u); +} +template +unsigned HashEvaluateExpr::getHashValue( + const Fortran::evaluate::Add> &x) { + return (HashEvaluateExpr::getHashValue(x.left()) + getHashValue(x.right())) * + 23u + + static_cast(TC) + static_cast(KIND); +} +template +unsigned HashEvaluateExpr::getHashValue( + const Fortran::evaluate::Subtract> &x) { + return (HashEvaluateExpr::getHashValue(x.left()) - getHashValue(x.right())) * + 19u + + static_cast(TC) + static_cast(KIND); +} +template +unsigned HashEvaluateExpr::getHashValue( + const Fortran::evaluate::Multiply> &x) { + return (HashEvaluateExpr::getHashValue(x.left()) + getHashValue(x.right())) * + 29u + + static_cast(TC) + static_cast(KIND); +} +template +unsigned HashEvaluateExpr::getHashValue( + const Fortran::evaluate::Divide> &x) { + return (HashEvaluateExpr::getHashValue(x.left()) - getHashValue(x.right())) * + 31u + + static_cast(TC) + static_cast(KIND); +} +template +unsigned HashEvaluateExpr::getHashValue( + const Fortran::evaluate::Power> &x) { + return (HashEvaluateExpr::getHashValue(x.left()) - getHashValue(x.right())) * + 37u + + static_cast(TC) + static_cast(KIND); +} +template +unsigned HashEvaluateExpr::getHashValue( + const Fortran::evaluate::Extremum> &x) { + return (HashEvaluateExpr::getHashValue(x.left()) + getHashValue(x.right())) * + 41u + + static_cast(TC) + static_cast(KIND) + + static_cast(x.ordering) * 7u; +} +template +unsigned HashEvaluateExpr::getHashValue( + const Fortran::evaluate::RealToIntPower> + &x) { + return (HashEvaluateExpr::getHashValue(x.left()) - getHashValue(x.right())) * + 43u + + static_cast(TC) + static_cast(KIND); +} +template +unsigned HashEvaluateExpr::getHashValue( + const Fortran::evaluate::ComplexConstructor &x) { + return (HashEvaluateExpr::getHashValue(x.left()) - getHashValue(x.right())) * + 47u + + static_cast(KIND); +} +template +unsigned +HashEvaluateExpr::getHashValue(const Fortran::evaluate::Concat &x) { + return (HashEvaluateExpr::getHashValue(x.left()) - getHashValue(x.right())) * + 53u + + static_cast(KIND); +} +template +unsigned +HashEvaluateExpr::getHashValue(const Fortran::evaluate::SetLength &x) { + return (HashEvaluateExpr::getHashValue(x.left()) - getHashValue(x.right())) * + 59u + + static_cast(KIND); +} +unsigned +HashEvaluateExpr::getHashValue(const Fortran::semantics::SymbolRef &sym) { + return HashEvaluateExpr::getHashValue(sym.get()); +} +unsigned HashEvaluateExpr::getHashValue(const Fortran::evaluate::Substring &x) { + return 61u * Fortran::common::visit( + [&](const auto &p) { + return HashEvaluateExpr::getHashValue(p); + }, + x.parent()) - + HashEvaluateExpr::getHashValue(x.lower()) - + (getHashValue(x.lower()) + 1u); +} +unsigned HashEvaluateExpr::getHashValue( + const Fortran::evaluate::StaticDataObject::Pointer &x) { + return llvm::hash_value(x->name()); +} +unsigned +HashEvaluateExpr::getHashValue(const Fortran::evaluate::SpecificIntrinsic &x) { + return llvm::hash_value(x.name); +} +template +unsigned +HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant &x) { + // FIXME: Should hash the content. + return 103u; +} +unsigned +HashEvaluateExpr::getHashValue(const Fortran::evaluate::ActualArgument &x) { + if (const Fortran::evaluate::Symbol *sym = x.GetAssumedTypeDummy()) + return HashEvaluateExpr::getHashValue(*sym); + return HashEvaluateExpr::getHashValue(*x.UnwrapExpr()); +} +unsigned HashEvaluateExpr::getHashValue( + const Fortran::evaluate::ProcedureDesignator &x) { + return Fortran::common::visit( + [&](const auto &v) { return HashEvaluateExpr::getHashValue(v); }, x.u); +} +unsigned +HashEvaluateExpr::getHashValue(const Fortran::evaluate::ProcedureRef &x) { + unsigned args = 13u; + for (const std::optional &v : + x.arguments()) + args -= HashEvaluateExpr::getHashValue(v); + return HashEvaluateExpr::getHashValue(x.proc()) * 101u - args; +} +template +unsigned HashEvaluateExpr::getHashValue( + const Fortran::evaluate::ArrayConstructor &x) { + // FIXME: hash the contents. + return 127u; +} +unsigned +HashEvaluateExpr::getHashValue(const Fortran::evaluate::ImpliedDoIndex &x) { + return llvm::hash_value(toStringRef(x.name).str()) * 131u; +} +unsigned +HashEvaluateExpr::getHashValue(const Fortran::evaluate::TypeParamInquiry &x) { + return HashEvaluateExpr::getHashValue(x.base()) * 137u - + getHashValue(x.parameter()) * 3u; +} +unsigned +HashEvaluateExpr::getHashValue(const Fortran::evaluate::DescriptorInquiry &x) { + return HashEvaluateExpr::getHashValue(x.base()) * 139u - + static_cast(x.field()) * 13u + + static_cast(x.dimension()); +} +unsigned HashEvaluateExpr::getHashValue( + const Fortran::evaluate::StructureConstructor &x) { + // FIXME: hash the contents. + return 149u; +} +template +unsigned HashEvaluateExpr::getHashValue(const Fortran::evaluate::Not &x) { + return HashEvaluateExpr::getHashValue(x.left()) * 61u + + static_cast(KIND); +} +template +unsigned HashEvaluateExpr::getHashValue( + const Fortran::evaluate::LogicalOperation &x) { + unsigned result = + HashEvaluateExpr::getHashValue(x.left()) + getHashValue(x.right()); + return result * 67u + static_cast(x.logicalOperator) * 5u; +} +template +unsigned HashEvaluateExpr::getHashValue( + const Fortran::evaluate::Relational> &x) { + return (HashEvaluateExpr::getHashValue(x.left()) + getHashValue(x.right())) * + 71u + + static_cast(TC) + static_cast(KIND) + + static_cast(x.opr) * 11u; +} +template +unsigned HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr &x) { + return Fortran::common::visit( + [&](const auto &v) { return HashEvaluateExpr::getHashValue(v); }, x.u); +} +unsigned HashEvaluateExpr::getHashValue( + const Fortran::evaluate::Relational &x) { + return Fortran::common::visit( + [&](const auto &v) { return HashEvaluateExpr::getHashValue(v); }, x.u); +} +template +unsigned +HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator &x) { + return Fortran::common::visit( + [&](const auto &v) { return HashEvaluateExpr::getHashValue(v); }, x.u); +} +template +unsigned HashEvaluateExpr::getHashValue( + const Fortran::evaluate::value::Integer &x) { + return static_cast(x.ToSInt()); +} +unsigned +HashEvaluateExpr::getHashValue(const Fortran::evaluate::NullPointer &x) { + return ~179u; +} + + +bool IsEqualEvaluateExpr::isEqual(const Fortran::semantics::Symbol &x, + const Fortran::semantics::Symbol &y) { + return IsEqualEvaluateExpr::isEqual(&x, &y); +} +bool IsEqualEvaluateExpr::isEqual(const Fortran::semantics::Symbol *x, + const Fortran::semantics::Symbol *y) { + return x == y; +} +template +bool IsEqualEvaluateExpr::isEqual( + const Fortran::common::Indirection &x, + const Fortran::common::Indirection &y) { + return IsEqualEvaluateExpr::isEqual(x.value(), y.value()); +} +template +bool IsEqualEvaluateExpr::isEqual(const std::optional &x, + const std::optional &y) { + if (x.has_value() && y.has_value()) + return IsEqualEvaluateExpr::isEqual(x.value(), y.value()); + return !x.has_value() && !y.has_value(); +} +template +bool IsEqualEvaluateExpr::isEqual(const std::vector &x, + const std::vector &y) { + if (x.size() != y.size()) + return false; + const std::size_t size = x.size(); + for (std::remove_const_t i = 0; i < size; ++i) + if (!IsEqualEvaluateExpr::isEqual(x[i], y[i])) + return false; + return true; +} +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subscript &x, + const Fortran::evaluate::Subscript &y) { + return Fortran::common::visit( + [&](const auto &v, const auto &w) { + return IsEqualEvaluateExpr::isEqual(v, w); + }, + x.u, y.u); +} +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Triplet &x, + const Fortran::evaluate::Triplet &y) { + return IsEqualEvaluateExpr::isEqual(x.lower(), y.lower()) && + IsEqualEvaluateExpr::isEqual(x.upper(), y.upper()) && + IsEqualEvaluateExpr::isEqual(x.stride(), y.stride()); +} +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Component &x, + const Fortran::evaluate::Component &y) { + return IsEqualEvaluateExpr::isEqual(x.base(), y.base()) && + IsEqualEvaluateExpr::isEqual(x.GetLastSymbol(), y.GetLastSymbol()); +} +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayRef &x, + const Fortran::evaluate::ArrayRef &y) { + return IsEqualEvaluateExpr::isEqual(x.base(), y.base()) && + IsEqualEvaluateExpr::isEqual(x.subscript(), y.subscript()); +} +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::CoarrayRef &x, + const Fortran::evaluate::CoarrayRef &y) { + return IsEqualEvaluateExpr::isEqual(x.base(), y.base()) && + IsEqualEvaluateExpr::isEqual(x.subscript(), y.subscript()) && + IsEqualEvaluateExpr::isEqual(x.cosubscript(), y.cosubscript()) && + IsEqualEvaluateExpr::isEqual(x.stat(), y.stat()) && + IsEqualEvaluateExpr::isEqual(x.team(), y.team()); +} +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::NamedEntity &x, + const Fortran::evaluate::NamedEntity &y) { + if (x.IsSymbol() && y.IsSymbol()) + return IsEqualEvaluateExpr::isEqual(x.GetFirstSymbol(), y.GetFirstSymbol()); + return !x.IsSymbol() && !y.IsSymbol() && + IsEqualEvaluateExpr::isEqual(x.GetComponent(), y.GetComponent()); +} +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DataRef &x, + const Fortran::evaluate::DataRef &y) { + return Fortran::common::visit( + [&](const auto &v, const auto &w) { + return IsEqualEvaluateExpr::isEqual(v, w); + }, + x.u, y.u); +} +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexPart &x, + const Fortran::evaluate::ComplexPart &y) { + return IsEqualEvaluateExpr::isEqual(x.complex(), y.complex()) && + x.part() == y.part(); +} +template +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert &x, + const Fortran::evaluate::Convert &y) { + return IsEqualEvaluateExpr::isEqual(x.left(), y.left()); +} +template +bool IsEqualEvaluateExpr::isEqual( + const Fortran::evaluate::ComplexComponent &x, + const Fortran::evaluate::ComplexComponent &y) { + return IsEqualEvaluateExpr::isEqual(x.left(), y.left()) && + x.isImaginaryPart == y.isImaginaryPart; +} +template +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses &x, + const Fortran::evaluate::Parentheses &y) { + return IsEqualEvaluateExpr::isEqual(x.left(), y.left()); +} +template +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate &x, + const Fortran::evaluate::Negate &y) { + return IsEqualEvaluateExpr::isEqual(x.left(), y.left()); +} +template bool isBinaryEqual(const A &x, const A &y) { + return IsEqualEvaluateExpr::isEqual(x.left(), y.left()) && + IsEqualEvaluateExpr::isEqual(x.right(), y.right()); +} +template +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add &x, + const Fortran::evaluate::Add &y) { + return isBinaryEqual(x, y); +} +template +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract &x, + const Fortran::evaluate::Subtract &y) { + return isBinaryEqual(x, y); +} +template +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply &x, + const Fortran::evaluate::Multiply &y) { + return isBinaryEqual(x, y); +} +template +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide &x, + const Fortran::evaluate::Divide &y) { + return isBinaryEqual(x, y); +} +template +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power &x, + const Fortran::evaluate::Power &y) { + return isBinaryEqual(x, y); +} +template +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum &x, + const Fortran::evaluate::Extremum &y) { + return isBinaryEqual(x, y); +} +template +bool IsEqualEvaluateExpr::isEqual( + const Fortran::evaluate::RealToIntPower &x, + const Fortran::evaluate::RealToIntPower &y) { + return isBinaryEqual(x, y); +} +template +bool IsEqualEvaluateExpr::isEqual( + const Fortran::evaluate::ComplexConstructor &x, + const Fortran::evaluate::ComplexConstructor &y) { + return isBinaryEqual(x, y); +} +template +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat &x, + const Fortran::evaluate::Concat &y) { + return isBinaryEqual(x, y); +} +template +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength &x, + const Fortran::evaluate::SetLength &y) { + return isBinaryEqual(x, y); +} +bool IsEqualEvaluateExpr::isEqual(const Fortran::semantics::SymbolRef &x, + const Fortran::semantics::SymbolRef &y) { + return IsEqualEvaluateExpr::isEqual(x.get(), y.get()); +} +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Substring &x, + const Fortran::evaluate::Substring &y) { + return Fortran::common::visit( + [&](const auto &p, const auto &q) { + return IsEqualEvaluateExpr::isEqual(p, q); + }, + x.parent(), y.parent()) && + IsEqualEvaluateExpr::isEqual(x.lower(), y.lower()) && + IsEqualEvaluateExpr::isEqual(x.upper(), y.upper()); +} +bool IsEqualEvaluateExpr::isEqual( + const Fortran::evaluate::StaticDataObject::Pointer &x, + const Fortran::evaluate::StaticDataObject::Pointer &y) { + return x->name() == y->name(); +} +bool IsEqualEvaluateExpr::isEqual( + const Fortran::evaluate::SpecificIntrinsic &x, + const Fortran::evaluate::SpecificIntrinsic &y) { + return x.name == y.name; +} +template +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant &x, + const Fortran::evaluate::Constant &y) { + return x == y; +} +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ActualArgument &x, + const Fortran::evaluate::ActualArgument &y) { + if (const Fortran::evaluate::Symbol *xs = x.GetAssumedTypeDummy()) { + if (const Fortran::evaluate::Symbol *ys = y.GetAssumedTypeDummy()) + return IsEqualEvaluateExpr::isEqual(*xs, *ys); + return false; + } + return !y.GetAssumedTypeDummy() && + IsEqualEvaluateExpr::isEqual(*x.UnwrapExpr(), *y.UnwrapExpr()); +} +bool IsEqualEvaluateExpr::isEqual( + const Fortran::evaluate::ProcedureDesignator &x, + const Fortran::evaluate::ProcedureDesignator &y) { + return Fortran::common::visit( + [&](const auto &v, const auto &w) { + return IsEqualEvaluateExpr::isEqual(v, w); + }, + x.u, y.u); +} +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureRef &x, + const Fortran::evaluate::ProcedureRef &y) { + return IsEqualEvaluateExpr::isEqual(x.proc(), y.proc()) && + IsEqualEvaluateExpr::isEqual(x.arguments(), y.arguments()); +} +template +bool IsEqualEvaluateExpr::isEqual( + const Fortran::evaluate::ArrayConstructor &x, + const Fortran::evaluate::ArrayConstructor &y) { + llvm::report_fatal_error("not implemented"); +} +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &x, + const Fortran::evaluate::ImpliedDoIndex &y) { + return toStringRef(x.name) == toStringRef(y.name); +} +bool IsEqualEvaluateExpr::isEqual( + const Fortran::evaluate::TypeParamInquiry &x, + const Fortran::evaluate::TypeParamInquiry &y) { + return IsEqualEvaluateExpr::isEqual(x.base(), y.base()) && + IsEqualEvaluateExpr::isEqual(x.parameter(), y.parameter()); +} +bool IsEqualEvaluateExpr::isEqual( + const Fortran::evaluate::DescriptorInquiry &x, + const Fortran::evaluate::DescriptorInquiry &y) { + return IsEqualEvaluateExpr::isEqual(x.base(), y.base()) && + x.field() == y.field() && x.dimension() == y.dimension(); +} +bool IsEqualEvaluateExpr::isEqual( + const Fortran::evaluate::StructureConstructor &x, + const Fortran::evaluate::StructureConstructor &y) { + const auto &xValues = x.values(); + const auto &yValues = y.values(); + if (xValues.size() != yValues.size()) + return false; + if (x.derivedTypeSpec() != y.derivedTypeSpec()) + return false; + for (const auto &[xSymbol, xValue] : xValues) { + auto yIt = yValues.find(xSymbol); + // This should probably never happen, since the derived type + // should be the same. + if (yIt == yValues.end()) + return false; + if (!IsEqualEvaluateExpr::isEqual(xValue, yIt->second)) + return false; + } + return true; +} +template +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not &x, + const Fortran::evaluate::Not &y) { + return IsEqualEvaluateExpr::isEqual(x.left(), y.left()); +} +template +bool IsEqualEvaluateExpr::isEqual( + const Fortran::evaluate::LogicalOperation &x, + const Fortran::evaluate::LogicalOperation &y) { + return IsEqualEvaluateExpr::isEqual(x.left(), y.left()) && + IsEqualEvaluateExpr::isEqual(x.right(), y.right()); +} +template +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational &x, + const Fortran::evaluate::Relational &y) { + return IsEqualEvaluateExpr::isEqual(x.left(), y.left()) && + IsEqualEvaluateExpr::isEqual(x.right(), y.right()); +} +template +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &x, + const Fortran::evaluate::Expr &y) { + return Fortran::common::visit( + [&](const auto &v, const auto &w) { + return IsEqualEvaluateExpr::isEqual(v, w); + }, + x.u, y.u); +} +bool IsEqualEvaluateExpr::isEqual( + const Fortran::evaluate::Relational &x, + const Fortran::evaluate::Relational &y) { + return Fortran::common::visit( + [&](const auto &v, const auto &w) { + return IsEqualEvaluateExpr::isEqual(v, w); + }, + x.u, y.u); +} +template +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator &x, + const Fortran::evaluate::Designator &y) { + return Fortran::common::visit( + [&](const auto &v, const auto &w) { + return IsEqualEvaluateExpr::isEqual(v, w); + }, + x.u, y.u); +} +template +bool IsEqualEvaluateExpr::isEqual( + const Fortran::evaluate::value::Integer &x, + const Fortran::evaluate::value::Integer &y) { + return x == y; +} +bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::NullPointer &x, + const Fortran::evaluate::NullPointer &y) { + return true; +} +template , bool> = true> +bool IsEqualEvaluateExpr::isEqual(const A &, const B &) { + return false; +} +} // namespace Fortran::lower + +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::common::Indirection &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::common::Indirection>, true> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Add> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ArrayConstructor> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexComponent<10> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexComponent<16> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexComponent<2> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexComponent<3> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexComponent<4> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexComponent<8> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexConstructor<10> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexConstructor<16> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexConstructor<2> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexConstructor<3> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexConstructor<4> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::ComplexConstructor<8> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Concat<1> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Concat<2> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Concat<4> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Constant> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Character> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Character> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Character> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Designator> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Divide> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Expr> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Extremum> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::LogicalOperation<1> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::LogicalOperation<2> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::LogicalOperation<4> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::LogicalOperation<8> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Multiply> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Negate> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Not<1> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Not<2> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Not<4> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Not<8> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Parentheses> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Power> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::RealToIntPower> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Relational> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::SetLength<1> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::SetLength<2> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::SetLength<4> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::Subtract> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const Fortran::evaluate::value::Integer<128> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const std::optional &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const std::optional> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const std::optional>> &); +template unsigned int Fortran::lower::HashEvaluateExpr::getHashValue(const std::optional &); + +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::ComplexConstructor<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::ComplexConstructor<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::ComplexConstructor<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::ComplexConstructor<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::ComplexConstructor<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::ComplexConstructor<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Concat<1> &, const Fortran::evaluate::Concat<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Concat<2> &, const Fortran::evaluate::Concat<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Concat<4> &, const Fortran::evaluate::Concat<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::SetLength<1> &, const Fortran::evaluate::SetLength<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::SetLength<2> &, const Fortran::evaluate::SetLength<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::SetLength<4> &, const Fortran::evaluate::SetLength<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isBinaryEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Indirection &, const Fortran::common::Reference &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Indirection &, const Fortran::evaluate::SpecificIntrinsic &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Indirection>, true> &, const Fortran::evaluate::Triplet &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Reference &, const Fortran::common::Indirection &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Reference &, const Fortran::evaluate::ArrayRef &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Reference &, const Fortran::evaluate::CoarrayRef &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Reference &, const Fortran::evaluate::ComplexPart &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Reference &, const Fortran::evaluate::Component &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Reference &, const Fortran::evaluate::SpecificIntrinsic &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Reference &, const Fortran::evaluate::Substring &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexConstructor<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexConstructor<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexConstructor<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexConstructor<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexConstructor<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexConstructor<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::DescriptorInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ImpliedDoIndex &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::TypeParamInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexComponent<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexComponent<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexComponent<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexComponent<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexComponent<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ComplexComponent<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor &, const Fortran::evaluate::Constant &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor &, const Fortran::evaluate::Parentheses &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor &, const Fortran::evaluate::StructureConstructor &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Concat<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::SetLength<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Concat<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::SetLength<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Concat<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::SetLength<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexConstructor<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexConstructor<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexConstructor<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexConstructor<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexConstructor<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexConstructor<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::DescriptorInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ImpliedDoIndex &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::TypeParamInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::LogicalOperation<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Not<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::LogicalOperation<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Not<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::LogicalOperation<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Not<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Relational &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::LogicalOperation<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Not<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexComponent<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexComponent<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexComponent<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexComponent<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexComponent<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ComplexComponent<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayRef &, const Fortran::common::Reference &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayRef &, const Fortran::evaluate::CoarrayRef &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayRef &, const Fortran::evaluate::ComplexPart &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayRef &, const Fortran::evaluate::Component &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayRef &, const Fortran::evaluate::Substring &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::CoarrayRef &, const Fortran::common::Reference &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::CoarrayRef &, const Fortran::evaluate::ArrayRef &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::CoarrayRef &, const Fortran::evaluate::ComplexPart &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::CoarrayRef &, const Fortran::evaluate::Component &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::CoarrayRef &, const Fortran::evaluate::Substring &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexPart &, const Fortran::common::Reference &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexPart &, const Fortran::evaluate::ArrayRef &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexPart &, const Fortran::evaluate::CoarrayRef &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexPart &, const Fortran::evaluate::Component &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Component &, const Fortran::common::Reference &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Component &, const Fortran::evaluate::ArrayRef &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Component &, const Fortran::evaluate::CoarrayRef &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Component &, const Fortran::evaluate::ComplexPart &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Component &, const Fortran::evaluate::Substring &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<1> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<1> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<1> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<1> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<1> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<1> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<1> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<1> &, const Fortran::evaluate::SetLength<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<2> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<2> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<2> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<2> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<2> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<2> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<2> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<2> &, const Fortran::evaluate::SetLength<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<4> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<4> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<4> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<4> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<4> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<4> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<4> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<4> &, const Fortran::evaluate::SetLength<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant &, const Fortran::evaluate::ArrayConstructor &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant &, const Fortran::evaluate::Parentheses &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant &, const Fortran::evaluate::StructureConstructor &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Concat<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::SetLength<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Concat<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::SetLength<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Concat<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::SetLength<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexConstructor<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexConstructor<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexConstructor<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexConstructor<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexConstructor<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexConstructor<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::DescriptorInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ImpliedDoIndex &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::TypeParamInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::LogicalOperation<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Not<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::LogicalOperation<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Not<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::LogicalOperation<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Not<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Relational &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::LogicalOperation<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Not<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexComponent<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexComponent<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexComponent<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexComponent<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexComponent<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ComplexComponent<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ComplexConstructor<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ComplexConstructor<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ComplexConstructor<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ComplexConstructor<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ComplexConstructor<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::ComplexConstructor<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::DescriptorInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ImpliedDoIndex &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::TypeParamInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::DescriptorInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ImpliedDoIndex &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::TypeParamInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::DescriptorInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ImpliedDoIndex &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::TypeParamInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::LogicalOperation<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Not<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::LogicalOperation<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Not<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::LogicalOperation<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Not<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Relational &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::LogicalOperation<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Not<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ComplexComponent<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ComplexComponent<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ComplexComponent<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ComplexComponent<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ComplexComponent<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ComplexComponent<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ComplexComponent<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ComplexComponent<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ComplexComponent<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ComplexComponent<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ComplexComponent<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ComplexComponent<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ComplexComponent<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ComplexComponent<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ComplexComponent<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ComplexComponent<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ComplexComponent<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ComplexComponent<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Concat<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::SetLength<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Concat<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::SetLength<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Concat<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert> &, const Fortran::evaluate::SetLength<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DataRef &, const std::shared_ptr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::ImpliedDoIndex &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::DescriptorInquiry &, const Fortran::evaluate::TypeParamInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::StructureConstructor &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexConstructor<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexConstructor<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexConstructor<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexConstructor<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexConstructor<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexConstructor<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::DescriptorInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ImpliedDoIndex &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::TypeParamInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::LogicalOperation<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Not<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::LogicalOperation<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Not<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::LogicalOperation<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Not<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Relational &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::LogicalOperation<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Not<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexComponent<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexComponent<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexComponent<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexComponent<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexComponent<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ComplexComponent<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Concat<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::SetLength<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Concat<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::SetLength<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Concat<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::SetLength<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexConstructor<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexConstructor<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexConstructor<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexConstructor<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexConstructor<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexConstructor<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::DescriptorInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ImpliedDoIndex &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::TypeParamInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexComponent<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexComponent<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexComponent<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexComponent<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexComponent<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ComplexComponent<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::NullPointer &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureDesignator &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureRef &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::value::Integer<128> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::NullPointer &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureDesignator &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureRef &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::value::Integer<128> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::NullPointer &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureDesignator &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureRef &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::value::Integer<128> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::NullPointer &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureDesignator &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureRef &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::value::Integer<128> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::NullPointer &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureDesignator &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureRef &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::value::Integer<128> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::NullPointer &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureDesignator &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureRef &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::value::Integer<128> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::NullPointer &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureDesignator &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::ProcedureRef &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::value::Integer<128> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::DescriptorInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ImpliedDoIndex &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::TypeParamInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ComplexComponent<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ComplexComponent<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ComplexComponent<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ComplexComponent<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ComplexComponent<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ComplexComponent<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Concat<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::SetLength<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Concat<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::SetLength<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Concat<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::SetLength<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::StructureConstructor &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexConstructor<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexConstructor<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexConstructor<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexConstructor<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexConstructor<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexConstructor<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::DescriptorInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ImpliedDoIndex &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::TypeParamInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::LogicalOperation<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Not<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::LogicalOperation<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Not<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::LogicalOperation<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Not<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Relational &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::LogicalOperation<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Not<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexComponent<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexComponent<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexComponent<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexComponent<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexComponent<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ComplexComponent<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Concat<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::SetLength<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Concat<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::SetLength<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Concat<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::FunctionRef> &, const Fortran::evaluate::SetLength<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::DescriptorInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ImpliedDoIndex &, const Fortran::evaluate::TypeParamInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<1> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<1> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<1> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<1> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<1> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<1> &, const Fortran::evaluate::Not<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<1> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<2> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<2> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<2> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<2> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<2> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<2> &, const Fortran::evaluate::Not<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<2> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<4> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<4> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<4> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<4> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<4> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<4> &, const Fortran::evaluate::Not<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<4> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<4> &, const Fortran::evaluate::Relational &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<8> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<8> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<8> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<8> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<8> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<8> &, const Fortran::evaluate::Not<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<8> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexConstructor<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexConstructor<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexConstructor<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexConstructor<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexConstructor<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexConstructor<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::DescriptorInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ImpliedDoIndex &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::TypeParamInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexComponent<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexComponent<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexComponent<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexComponent<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexComponent<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ComplexComponent<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexConstructor<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexConstructor<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexConstructor<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexConstructor<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexConstructor<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexConstructor<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::DescriptorInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ImpliedDoIndex &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::TypeParamInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexComponent<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexComponent<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexComponent<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexComponent<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexComponent<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ComplexComponent<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<1> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<1> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<1> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<1> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<1> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<1> &, const Fortran::evaluate::LogicalOperation<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<1> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<2> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<2> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<2> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<2> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<2> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<2> &, const Fortran::evaluate::LogicalOperation<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<2> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<4> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<4> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<4> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<4> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<4> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<4> &, const Fortran::evaluate::LogicalOperation<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<4> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<4> &, const Fortran::evaluate::Relational &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<8> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<8> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<8> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<8> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<8> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<8> &, const Fortran::evaluate::LogicalOperation<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<8> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::NullPointer &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::NullPointer &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::NullPointer &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::NullPointer &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::NullPointer &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::NullPointer &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::NullPointer &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::NullPointer &, const Fortran::evaluate::ProcedureDesignator &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::NullPointer &, const Fortran::evaluate::ProcedureRef &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::NullPointer &, const Fortran::evaluate::value::Integer<128> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexConstructor<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexConstructor<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexConstructor<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexConstructor<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexConstructor<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexConstructor<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::DescriptorInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ImpliedDoIndex &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::TypeParamInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::LogicalOperation<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Not<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::LogicalOperation<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Not<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::LogicalOperation<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Not<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Relational &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::LogicalOperation<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Not<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexComponent<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexComponent<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexComponent<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexComponent<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexComponent<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ComplexComponent<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Concat<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::SetLength<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Concat<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::SetLength<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Concat<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::SetLength<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses &, const Fortran::evaluate::ArrayConstructor &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses &, const Fortran::evaluate::Constant &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses &, const Fortran::evaluate::StructureConstructor &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexConstructor<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexConstructor<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexConstructor<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexConstructor<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexConstructor<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexConstructor<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::DescriptorInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ImpliedDoIndex &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::TypeParamInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexComponent<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexComponent<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexComponent<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexComponent<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexComponent<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::ComplexComponent<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureDesignator &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureDesignator &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureDesignator &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureDesignator &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureDesignator &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureDesignator &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureDesignator &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureDesignator &, const Fortran::evaluate::NullPointer &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureDesignator &, const Fortran::evaluate::ProcedureRef &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureDesignator &, const Fortran::evaluate::value::Integer<128> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureRef &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureRef &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureRef &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureRef &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureRef &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureRef &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureRef &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureRef &, const Fortran::evaluate::NullPointer &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureRef &, const Fortran::evaluate::ProcedureDesignator &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ProcedureRef &, const Fortran::evaluate::value::Integer<128> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexConstructor<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexConstructor<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexConstructor<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexConstructor<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexConstructor<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexConstructor<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexComponent<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexComponent<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexComponent<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexComponent<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexComponent<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::ComplexComponent<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational &, const Fortran::evaluate::LogicalOperation<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational &, const Fortran::evaluate::Not<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<1> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<1> &, const Fortran::evaluate::Concat<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<1> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<1> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<1> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<1> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<1> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<1> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<2> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<2> &, const Fortran::evaluate::Concat<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<2> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<2> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<2> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<2> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<2> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<2> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<4> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<4> &, const Fortran::evaluate::Concat<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<4> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<4> &, const Fortran::evaluate::Convert> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<4> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<4> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<4> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<4> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SpecificIntrinsic &, const Fortran::common::Indirection &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SpecificIntrinsic &, const Fortran::common::Reference &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::StructureConstructor &, const Fortran::evaluate::ArrayConstructor &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::StructureConstructor &, const Fortran::evaluate::Constant &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::StructureConstructor &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::StructureConstructor &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::StructureConstructor &, const Fortran::evaluate::Parentheses &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Substring &, const Fortran::common::Reference &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Substring &, const Fortran::evaluate::ArrayRef &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Substring &, const Fortran::evaluate::CoarrayRef &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Substring &, const Fortran::evaluate::Component &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexConstructor<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexConstructor<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexConstructor<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexConstructor<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexConstructor<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexConstructor<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::DescriptorInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ImpliedDoIndex &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::TypeParamInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexComponent<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexComponent<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexComponent<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexComponent<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexComponent<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ComplexComponent<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Triplet &, const Fortran::common::Indirection>, true> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::DescriptorInquiry &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::FunctionRef> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::ImpliedDoIndex &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::TypeParamInquiry &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::value::Integer<128> &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::value::Integer<128> &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::value::Integer<128> &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::value::Integer<128> &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::value::Integer<128> &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::value::Integer<128> &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::value::Integer<128> &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::value::Integer<128> &, const Fortran::evaluate::NullPointer &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::value::Integer<128> &, const Fortran::evaluate::ProcedureDesignator &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::value::Integer<128> &, const Fortran::evaluate::ProcedureRef &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const std::shared_ptr &, const Fortran::evaluate::DataRef &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Indirection &, const Fortran::common::Indirection &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Indirection, true> &, const Fortran::common::Indirection, true> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::common::Indirection>, true> &, const Fortran::common::Indirection>, true> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Add> &, const Fortran::evaluate::Add> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ArrayConstructor> &, const Fortran::evaluate::ArrayConstructor> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<10> &, const Fortran::evaluate::ComplexComponent<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<16> &, const Fortran::evaluate::ComplexComponent<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<2> &, const Fortran::evaluate::ComplexComponent<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<3> &, const Fortran::evaluate::ComplexComponent<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<4> &, const Fortran::evaluate::ComplexComponent<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexComponent<8> &, const Fortran::evaluate::ComplexComponent<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<10> &, const Fortran::evaluate::ComplexConstructor<10> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<16> &, const Fortran::evaluate::ComplexConstructor<16> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<2> &, const Fortran::evaluate::ComplexConstructor<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<3> &, const Fortran::evaluate::ComplexConstructor<3> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<4> &, const Fortran::evaluate::ComplexConstructor<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::ComplexConstructor<8> &, const Fortran::evaluate::ComplexConstructor<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<1> &, const Fortran::evaluate::Concat<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<2> &, const Fortran::evaluate::Concat<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Concat<4> &, const Fortran::evaluate::Concat<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Constant> &, const Fortran::evaluate::Constant> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Complex> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Logical> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Integer> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Real> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Unsigned> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Character> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Character> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Character> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Character> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Character> &, const Fortran::evaluate::Convert, Fortran::common::TypeCategory::Character> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Designator> &, const Fortran::evaluate::Designator> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Divide> &, const Fortran::evaluate::Divide> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr &, const Fortran::evaluate::Expr &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Expr> &, const Fortran::evaluate::Expr> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Extremum> &, const Fortran::evaluate::Extremum> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<1> &, const Fortran::evaluate::LogicalOperation<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<2> &, const Fortran::evaluate::LogicalOperation<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<4> &, const Fortran::evaluate::LogicalOperation<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::LogicalOperation<8> &, const Fortran::evaluate::LogicalOperation<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Multiply> &, const Fortran::evaluate::Multiply> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate> &, const Fortran::evaluate::Negate> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<1> &, const Fortran::evaluate::Not<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<2> &, const Fortran::evaluate::Not<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<4> &, const Fortran::evaluate::Not<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Not<8> &, const Fortran::evaluate::Not<8> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Parentheses> &, const Fortran::evaluate::Parentheses> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Power> &, const Fortran::evaluate::Power> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::RealToIntPower> &, const Fortran::evaluate::RealToIntPower> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Relational> &, const Fortran::evaluate::Relational> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<1> &, const Fortran::evaluate::SetLength<1> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<2> &, const Fortran::evaluate::SetLength<2> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::SetLength<4> &, const Fortran::evaluate::SetLength<4> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Subtract> &, const Fortran::evaluate::Subtract> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::value::Integer<128> &, const Fortran::evaluate::value::Integer<128> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const std::optional &, const std::optional &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const std::optional> &, const std::optional> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const std::optional>> &, const std::optional>> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const std::optional &, const std::optional &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const std::vector> &, const std::vector> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const std::vector>> &, const std::vector>> &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const std::vector &, const std::vector &); +template bool Fortran::lower::IsEqualEvaluateExpr::isEqual(const std::vector> &, const std::vector> &); From d732b5d0c106276f0289cc0304dbcebaa38cd9d4 Mon Sep 17 00:00:00 2001 From: Krzysztof Parzyszek Date: Wed, 29 Jan 2025 08:56:10 -0600 Subject: [PATCH 2/2] compilation-fixes --- flang/lib/Lower/Support/Utils.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flang/lib/Lower/Support/Utils.cpp b/flang/lib/Lower/Support/Utils.cpp index 92638bcb2255e..af7eeaccf595a 100644 --- a/flang/lib/Lower/Support/Utils.cpp +++ b/flang/lib/Lower/Support/Utils.cpp @@ -388,7 +388,8 @@ bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::Negate &x, const Fortran::evaluate::Negate &y) { return IsEqualEvaluateExpr::isEqual(x.left(), y.left()); } -template bool isBinaryEqual(const A &x, const A &y) { +template +bool IsEqualEvaluateExpr::isBinaryEqual(const A &x, const A &y) { return IsEqualEvaluateExpr::isEqual(x.left(), y.left()) && IsEqualEvaluateExpr::isEqual(x.right(), y.right()); } @@ -594,8 +595,7 @@ bool IsEqualEvaluateExpr::isEqual(const Fortran::evaluate::NullPointer &x, const Fortran::evaluate::NullPointer &y) { return true; } -template , bool> = true> +template , bool>> bool IsEqualEvaluateExpr::isEqual(const A &, const B &) { return false; }