Index: src/ResolvExpr/AdjustExprType.hpp
===================================================================
--- src/ResolvExpr/AdjustExprType.hpp	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
+++ src/ResolvExpr/AdjustExprType.hpp	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
@@ -0,0 +1,56 @@
+//
+// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+//
+// AdjustExprType.hpp --
+//
+// Author           : Andrew Beach
+// Created On       : Wed Jan 18  9:56:00 2023
+// Last Modified By : Andrew Beach
+// Last Modified On : Wed Jan 18  9:56:00 2023
+// Update Count     : 0
+//
+
+#pragma once
+
+class Type;
+namespace SymTab {
+	class Indexer;
+}
+namespace ast {
+	class SymbolTable;
+	class Type;
+	class TypeEnvironment;
+}
+
+namespace ResolvExpr {
+
+class TypeEnvironment;
+
+/// Replaces array types with the equivalent pointer, and function types with a pointer-to-function
+void adjustExprType( Type *& type, const TypeEnvironment & env, const SymTab::Indexer & indexer );
+
+/// Replaces array types with the equivalent pointer, and function types with a pointer-to-function using empty TypeEnvironment and Indexer.
+void adjustExprType( Type *& type );
+
+template< typename ForwardIterator >
+void adjustExprTypeList( ForwardIterator begin, ForwardIterator end, const TypeEnvironment & env, const SymTab::Indexer & indexer ) {
+	while ( begin != end ) {
+		adjustExprType( *begin++, env, indexer );
+	} // while
+}
+
+/// Replaces array types with equivalent pointer,
+/// and function types with a pointer-to-function.
+const ast::Type * adjustExprType( const ast::Type * type,
+	const ast::TypeEnvironment & env, const ast::SymbolTable & symtab );
+
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// mode: c++ //
+// compile-command: "make install" //
+// End: //
Index: src/ResolvExpr/AlternativeFinder.cc
===================================================================
--- src/ResolvExpr/AlternativeFinder.cc	(revision fed6a0f4a3bfa4953d7550f86f6305db8f0125c7)
+++ src/ResolvExpr/AlternativeFinder.cc	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
@@ -28,8 +28,10 @@
 
 #include "CompilationState.h"      // for resolvep
+#include "AdjustExprType.hpp"      // for adjustExprType
 #include "Alternative.h"           // for AltList, Alternative
 #include "AST/Expr.hpp"
 #include "AST/SymbolTable.hpp"
 #include "AST/Type.hpp"
+#include "CastCost.hpp"            // for castCost
 #include "Common/SemanticError.h"  // for SemanticError
 #include "Common/utility.h"        // for deleteAll, printAll, CodeLocation
@@ -38,8 +40,10 @@
 #include "ExplodedActual.h"        // for ExplodedActual
 #include "InitTweak/InitTweak.h"   // for getFunctionName
+#include "PolyCost.hpp"            // for polyCost
 #include "RenameVars.h"            // for RenameVars, global_renamer
 #include "ResolveAssertions.h"     // for resolveAssertions
 #include "ResolveTypeof.h"         // for resolveTypeof
 #include "Resolver.h"              // for resolveStmtExpr
+#include "SpecCost.hpp"            // for specCost
 #include "SymTab/Indexer.h"        // for Indexer
 #include "SymTab/Mangler.h"        // for Mangler
@@ -53,6 +57,6 @@
 #include "Tuples/Explode.h"        // for explode
 #include "Tuples/Tuples.h"         // for isTtype, handleTupleAssignment
+#include "typeops.h"               // for combos
 #include "Unify.h"                 // for unify
-#include "typeops.h"               // for adjustExprType, polyCost, castCost
 
 #define PRINT( text ) if ( resolvep ) { text }
Index: src/ResolvExpr/CandidateFinder.cpp
===================================================================
--- src/ResolvExpr/CandidateFinder.cpp	(revision fed6a0f4a3bfa4953d7550f86f6305db8f0125c7)
+++ src/ResolvExpr/CandidateFinder.cpp	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
@@ -23,14 +23,18 @@
 #include <vector>
 
+#include "AdjustExprType.hpp"
 #include "Candidate.hpp"
+#include "CastCost.hpp"           // for castCost
 #include "CompilationState.h"
 #include "ConversionCost.h"       // for conversionCast
 #include "Cost.h"
 #include "ExplodedArg.hpp"
+#include "PolyCost.hpp"
 #include "RenameVars.h"           // for renameTyVars
 #include "Resolver.h"
 #include "ResolveTypeof.h"
 #include "SatisfyAssertions.hpp"
-#include "typeops.h"              // for adjustExprType, polyCost, specCost
+#include "SpecCost.hpp"
+#include "typeops.h"              // for combos
 #include "Unify.h"
 #include "AST/Expr.hpp"
Index: src/ResolvExpr/CastCost.cc
===================================================================
--- src/ResolvExpr/CastCost.cc	(revision fed6a0f4a3bfa4953d7550f86f6305db8f0125c7)
+++ src/ResolvExpr/CastCost.cc	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
@@ -13,4 +13,6 @@
 // Update Count     : 9
 //
+
+#include "CastCost.hpp"
 
 #include <cassert>                       // for assert
@@ -22,4 +24,6 @@
 #include "ConversionCost.h"              // for ConversionCost
 #include "Cost.h"                        // for Cost, Cost::infinity
+#include "ResolvExpr/ConversionCost.h"   // for conversionCost
+#include "ResolvExpr/PtrsCastable.hpp"   // for ptrsCastable
 #include "ResolvExpr/TypeEnvironment.h"  // for TypeEnvironment, EqvClass
 #include "ResolvExpr/typeops.h"          // for ptrsCastable
Index: src/ResolvExpr/CastCost.hpp
===================================================================
--- src/ResolvExpr/CastCost.hpp	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
+++ src/ResolvExpr/CastCost.hpp	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
@@ -0,0 +1,47 @@
+//
+// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+//
+// CastCost.hpp -- Cost of a cast.
+//
+// Author           : Andrew Beach
+// Created On       : Fri Dec  9 11:28:00 2022
+// Last Modified By : Andrew Beach
+// Last Modified On : Fri Dec  9 11:28:00 2022
+// Update Count     : 0
+//
+
+#pragma once
+
+#include "ResolvExpr/Cost.h"     // for Cost
+
+class Type;
+namespace SymTab {
+	class Indexer;
+}
+namespace ast {
+	class SymbolTable;
+	class Type;
+	class TypeEnvironment;
+}
+
+namespace ResolvExpr {
+
+class TypeEnvironment;
+
+Cost castCost(
+	const Type * src, const Type * dest, bool srcIsLvalue,
+	const SymTab::Indexer & indexer, const TypeEnvironment & env );
+Cost castCost(
+	const ast::Type * src, const ast::Type * dst, bool srcIsLvalue,
+	const ast::SymbolTable & symtab, const ast::TypeEnvironment & env );
+
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// mode: c++ //
+// compile-command: "make install" //
+// End: //
Index: src/ResolvExpr/CommonType.cc
===================================================================
--- src/ResolvExpr/CommonType.cc	(revision fed6a0f4a3bfa4953d7550f86f6305db8f0125c7)
+++ src/ResolvExpr/CommonType.cc	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
@@ -13,4 +13,6 @@
 // Update Count     : 24
 //
+
+#include "CommonType.hpp"
 
 #include <cassert>                       // for strict_dynamic_cast
Index: src/ResolvExpr/CommonType.hpp
===================================================================
--- src/ResolvExpr/CommonType.hpp	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
+++ src/ResolvExpr/CommonType.hpp	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
@@ -0,0 +1,47 @@
+//
+// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+//
+// CommonType.hpp --
+//
+// Author           : Andrew Beach
+// Created On       : Tue Jan 17 16:52:00 2023
+// Last Modified By : Andrew Beach
+// Last Modified On : Tue Jan 17 16:52:00 2023
+// Update Count     : 0
+//
+
+#pragma once
+
+#include "AST/Fwd.hpp"
+#include "AST/TypeEnvironment.hpp"  // for AssertionSet, OpenVarSet
+#include "TypeEnvironment.h"        // for AssertionSet, OpenVarSet
+#include "WidenMode.h"              // for WidenMode
+
+class Type;
+namespace SymTab {
+	class Indexer;
+}
+
+namespace ResolvExpr {
+
+Type * commonType(
+	Type * type1, Type * type2, bool widenFirst, bool widenSecond,
+	const SymTab::Indexer & indexer, TypeEnvironment & env,
+	const OpenVarSet & openVars );
+ast::ptr< ast::Type > commonType(
+	const ast::ptr< ast::Type > & type1, const ast::ptr< ast::Type > & type2,
+	ast::TypeEnvironment & env,
+	ast::AssertionSet & need, ast::AssertionSet & have,
+	const ast::OpenVarSet & open, WidenMode widen,
+	const ast::SymbolTable & symtab );
+
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// mode: c++ //
+// compile-command: "make install" //
+// End: //
Index: src/ResolvExpr/ConversionCost.cc
===================================================================
--- src/ResolvExpr/ConversionCost.cc	(revision fed6a0f4a3bfa4953d7550f86f6305db8f0125c7)
+++ src/ResolvExpr/ConversionCost.cc	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
@@ -22,9 +22,9 @@
 #include "ResolvExpr/Cost.h"             // for Cost
 #include "ResolvExpr/TypeEnvironment.h"  // for EqvClass, TypeEnvironment
-#include "ResolvExpr/Unify.h"
+#include "ResolvExpr/Unify.h"            // for typesCompatibleIgnoreQualifiers
+#include "ResolvExpr/PtrsAssignable.hpp" // for ptrsAssignable
 #include "SymTab/Indexer.h"              // for Indexer
 #include "SynTree/Declaration.h"         // for TypeDecl, NamedTypeDecl
 #include "SynTree/Type.h"                // for Type, BasicType, TypeInstType
-#include "typeops.h"                     // for typesCompatibleIgnoreQualifiers
 
 
Index: src/ResolvExpr/PolyCost.hpp
===================================================================
--- src/ResolvExpr/PolyCost.hpp	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
+++ src/ResolvExpr/PolyCost.hpp	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
@@ -0,0 +1,43 @@
+//
+// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+//
+// PolyCost.hpp --
+//
+// Author           : Andrew Beach
+// Created On       : Tue Jan 17 16:45:00 2023
+// Last Modified By : Andrew Beach
+// Last Modified On : Tue Jan 17 16:45:00 2023
+// Update Count     : 0
+//
+
+#pragma once
+
+class Type;
+namespace SymTab {
+    class Indexer;
+}
+namespace ast {
+    class SymbolTable;
+    class Type;
+    class TypeEnvironment;
+}
+
+namespace ResolvExpr {
+
+class TypeEnvironment;
+
+int polyCost( Type * type,
+	const TypeEnvironment & env, const SymTab::Indexer & indexer );
+int polyCost( const ast::Type * type,
+	const ast::SymbolTable & symtab, const ast::TypeEnvironment & env );
+
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// mode: c++ //
+// compile-command: "make install" //
+// End: //
Index: src/ResolvExpr/PtrsAssignable.cc
===================================================================
--- src/ResolvExpr/PtrsAssignable.cc	(revision fed6a0f4a3bfa4953d7550f86f6305db8f0125c7)
+++ src/ResolvExpr/PtrsAssignable.cc	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
@@ -14,5 +14,5 @@
 //
 
-#include "typeops.h"
+#include "PtrsAssignable.hpp"
 
 #include "AST/Pass.hpp"
Index: src/ResolvExpr/PtrsAssignable.hpp
===================================================================
--- src/ResolvExpr/PtrsAssignable.hpp	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
+++ src/ResolvExpr/PtrsAssignable.hpp	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
@@ -0,0 +1,39 @@
+//
+// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+//
+// PtrsAssignable.hpp --
+//
+// Author           : Andrew Beach
+// Created On       : Fri Dec  9 11:40:00 2022
+// Last Modified By : Andrew Beach
+// Last Modified On : Fri Dec  9 11:40:00 2022
+// Update Count     : 0
+//
+
+#pragma once
+
+class Type;
+namespace ast {
+	class Type;
+	class TypeEnvironment;
+}
+
+namespace ResolvExpr {
+
+class TypeEnvironment;
+
+int ptrsAssignable( const Type * src, const Type * dest,
+	const TypeEnvironment & env );
+int ptrsAssignable( const ast::Type * src, const ast::Type * dst,
+	const ast::TypeEnvironment & env );
+
+} // namespace ResolvExpr
+
+// Local Variables: //
+// tab-width: 4 //
+// mode: c++ //
+// compile-command: "make install" //
+// End: //
Index: src/ResolvExpr/PtrsCastable.cc
===================================================================
--- src/ResolvExpr/PtrsCastable.cc	(revision fed6a0f4a3bfa4953d7550f86f6305db8f0125c7)
+++ src/ResolvExpr/PtrsCastable.cc	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
@@ -14,4 +14,6 @@
 //
 
+#include "PtrsCastable.hpp"
+
 #include "AST/Decl.hpp"
 #include "AST/Pass.hpp"
@@ -19,4 +21,5 @@
 #include "AST/TypeEnvironment.hpp"
 #include "Common/PassVisitor.h"
+#include "ResolvExpr/PtrsAssignable.hpp" // for ptrsAssignable
 #include "ResolvExpr/TypeEnvironment.h"  // for EqvClass, TypeEnvironment
 #include "SymTab/Indexer.h"              // for Indexer
@@ -24,5 +27,4 @@
 #include "SynTree/Type.h"                // for TypeInstType, Type, BasicType
 #include "SynTree/Visitor.h"             // for Visitor
-#include "typeops.h"                     // for ptrsAssignable
 
 namespace ResolvExpr {
@@ -291,7 +293,5 @@
 		return objectCast( src, env, symtab );
 	} else {
-		ast::Pass< PtrsCastable_new > ptrs{ dst, env, symtab };
-		src->accept( ptrs );
-		return ptrs.core.result;
+		return ast::Pass<PtrsCastable_new>::read( src, dst, env, symtab );
 	}
 }
Index: src/ResolvExpr/PtrsCastable.hpp
===================================================================
--- src/ResolvExpr/PtrsCastable.hpp	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
+++ src/ResolvExpr/PtrsCastable.hpp	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
@@ -0,0 +1,45 @@
+//
+// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+//
+// PtrsCastable.hpp --
+//
+// Author           : Andrew Beach
+// Created On       : Mon Jan 16 17:04:00 2023
+// Last Modified By : Andrew Beach
+// Last Modified On : Mon Jan 16 17:04:00 2023
+// Update Count     : 0
+//
+
+#pragma once
+
+class Type;
+namespace SymTab {
+    class Indexer;
+}
+namespace ast {
+    class SymbolTable;
+    class Type;
+    class TypeEnvironment;
+}
+
+namespace ResolvExpr {
+
+class TypeEnvironment;
+
+int ptrsCastable(
+	const Type * src, const Type * dst,
+	const TypeEnvironment & env, const SymTab::Indexer & indexer );
+int ptrsCastable(
+	const ast::Type * src, const ast::Type * dst,
+	const ast::SymbolTable & symtab, const ast::TypeEnvironment & env );
+
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// mode: c++ //
+// compile-command: "make install" //
+// End: //
Index: src/ResolvExpr/ResolveAssertions.cc
===================================================================
--- src/ResolvExpr/ResolveAssertions.cc	(revision fed6a0f4a3bfa4953d7550f86f6305db8f0125c7)
+++ src/ResolvExpr/ResolveAssertions.cc	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
@@ -26,4 +26,5 @@
 #include <vector>                   // for vector
 
+#include "AdjustExprType.hpp"       // for adjustExprType
 #include "Alternative.h"            // for Alternative, AssertionItem, AssertionList
 #include "Common/FilterCombos.h"    // for filterCombos
@@ -33,9 +34,9 @@
 #include "ResolvExpr/AlternativeFinder.h"  // for computeConversionCost
 #include "ResolvExpr/RenameVars.h"  // for renameTyVars
+#include "SpecCost.hpp"             // for specCost
 #include "SymTab/Indexer.h"         // for Indexer
 #include "SymTab/Mangler.h"         // for Mangler
 #include "SynTree/Expression.h"     // for InferredParams
 #include "TypeEnvironment.h"        // for TypeEnvironment, etc.
-#include "typeops.h"                // for adjustExprType, specCost
 #include "Unify.h"                  // for unify
 
Index: src/ResolvExpr/SatisfyAssertions.cpp
===================================================================
--- src/ResolvExpr/SatisfyAssertions.cpp	(revision fed6a0f4a3bfa4953d7550f86f6305db8f0125c7)
+++ src/ResolvExpr/SatisfyAssertions.cpp	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
@@ -23,8 +23,11 @@
 #include <vector>
 
+#include "AdjustExprType.hpp"
 #include "Candidate.hpp"
 #include "CandidateFinder.hpp"
+#include "CommonType.hpp"
 #include "Cost.h"
 #include "RenameVars.h"
+#include "SpecCost.hpp"
 #include "typeops.h"
 #include "Unify.h"
Index: src/ResolvExpr/SpecCost.hpp
===================================================================
--- src/ResolvExpr/SpecCost.hpp	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
+++ src/ResolvExpr/SpecCost.hpp	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
@@ -0,0 +1,34 @@
+//
+// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+//
+// SpecCost.hpp --
+//
+// Author           : Andrew Beach
+// Created On       : Tue Jan 17 16:49:00 2023
+// Last Modified By : Andrew Beach
+// Last Modified On : Tue Jan 17 16:49:00 2023
+// Update Count     : 0
+//
+
+#pragma once
+
+class Type;
+namespace ast {
+    class Type;
+}
+
+namespace ResolvExpr {
+
+int specCost( Type * type );
+int specCost( const ast::Type * type );
+
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// mode: c++ //
+// compile-command: "make install" //
+// End: //
Index: src/ResolvExpr/Unify.cc
===================================================================
--- src/ResolvExpr/Unify.cc	(revision fed6a0f4a3bfa4953d7550f86f6305db8f0125c7)
+++ src/ResolvExpr/Unify.cc	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
@@ -33,5 +33,7 @@
 #include "AST/TypeEnvironment.hpp"
 #include "Common/PassVisitor.h"     // for PassVisitor
+#include "CommonType.hpp"           // for commonType
 #include "FindOpenVars.h"           // for findOpenVars
+#include "SpecCost.hpp"             // for SpecCost
 #include "SynTree/LinkageSpec.h"    // for C
 #include "SynTree/Constant.h"       // for Constant
@@ -43,5 +45,5 @@
 #include "Tuples/Tuples.h"          // for isTtype
 #include "TypeEnvironment.h"        // for EqvClass, AssertionSet, OpenVarSet
-#include "typeops.h"                // for flatten, occurs, commonType
+#include "typeops.h"                // for flatten, occurs
 
 namespace ast {
Index: src/ResolvExpr/WidenMode.h
===================================================================
--- src/ResolvExpr/WidenMode.h	(revision fed6a0f4a3bfa4953d7550f86f6305db8f0125c7)
+++ src/ResolvExpr/WidenMode.h	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
@@ -19,5 +19,5 @@
 	struct WidenMode {
 		WidenMode( bool first, bool second ): first( first ), second( second ) {}
-		
+
 		WidenMode &operator|=( const WidenMode &other ) {
 			first |= other.first; second |= other.second; return *this;
@@ -35,5 +35,5 @@
 			WidenMode newWM( *this ); newWM &= other; return newWM;
 		}
-		
+
 		operator bool() { return first && second; }
 
Index: src/ResolvExpr/module.mk
===================================================================
--- src/ResolvExpr/module.mk	(revision fed6a0f4a3bfa4953d7550f86f6305db8f0125c7)
+++ src/ResolvExpr/module.mk	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
@@ -17,4 +17,5 @@
 SRC_RESOLVEXPR = \
       ResolvExpr/AdjustExprType.cc \
+      ResolvExpr/AdjustExprType.hpp \
       ResolvExpr/Alternative.cc \
       ResolvExpr/AlternativeFinder.cc \
@@ -26,5 +27,7 @@
       ResolvExpr/Candidate.hpp \
       ResolvExpr/CastCost.cc \
+      ResolvExpr/CastCost.hpp \
       ResolvExpr/CommonType.cc \
+      ResolvExpr/CommonType.hpp \
       ResolvExpr/ConversionCost.cc \
       ResolvExpr/ConversionCost.h \
@@ -40,6 +43,9 @@
       ResolvExpr/Occurs.cc \
       ResolvExpr/PolyCost.cc \
+      ResolvExpr/PolyCost.hpp \
       ResolvExpr/PtrsAssignable.cc \
+      ResolvExpr/PtrsAssignable.hpp \
       ResolvExpr/PtrsCastable.cc \
+      ResolvExpr/PtrsCastable.hpp \
       ResolvExpr/RenameVars.cc \
       ResolvExpr/RenameVars.h \
@@ -54,4 +60,5 @@
       ResolvExpr/SatisfyAssertions.hpp \
       ResolvExpr/SpecCost.cc \
+      ResolvExpr/SpecCost.hpp \
       ResolvExpr/TypeEnvironment.cc \
       ResolvExpr/TypeEnvironment.h \
Index: src/ResolvExpr/typeops.h
===================================================================
--- src/ResolvExpr/typeops.h	(revision fed6a0f4a3bfa4953d7550f86f6305db8f0125c7)
+++ src/ResolvExpr/typeops.h	(revision 3dd8f4224ccbdb7b2594da529cbeca7ef68699c1)
@@ -10,6 +10,6 @@
 // Created On       : Sun May 17 07:28:22 2015
 // Last Modified By : Andrew Beach
-// Last Modified On : Tue Oct  1 09:45:00 2019
-// Update Count     : 6
+// Last Modified On : Wed Jan 18 11:54:00 2023
+// Update Count     : 7
 //
 
@@ -60,57 +60,4 @@
 		}
 	}
-
-	// in AdjustExprType.cc
-	/// Replaces array types with the equivalent pointer, and function types with a pointer-to-function
-	void adjustExprType( Type *& type, const TypeEnvironment & env, const SymTab::Indexer & indexer );
-
-	/// Replaces array types with the equivalent pointer, and function types with a pointer-to-function using empty TypeEnvironment and Indexer
-	void adjustExprType( Type *& type );
-
-	template< typename ForwardIterator >
-	void adjustExprTypeList( ForwardIterator begin, ForwardIterator end, const TypeEnvironment & env, const SymTab::Indexer & indexer ) {
-		while ( begin != end ) {
-			adjustExprType( *begin++, env, indexer );
-		} // while
-	}
-
-	/// Replaces array types with equivalent pointer, and function types with a pointer-to-function
-	const ast::Type * adjustExprType(
-		const ast::Type * type, const ast::TypeEnvironment & env, const ast::SymbolTable & symtab );
-
-	// in CastCost.cc
-	Cost castCost( const Type * src, const Type * dest, bool srcIsLvalue,
-		const SymTab::Indexer & indexer, const TypeEnvironment & env );
-	Cost castCost(
-		const ast::Type * src, const ast::Type * dst, bool srcIsLvalue,
-		const ast::SymbolTable & symtab, const ast::TypeEnvironment & env );
-
-	// in PtrsAssignable.cc
-	int ptrsAssignable( const Type * src, const Type * dest, const TypeEnvironment & env );
-	int ptrsAssignable( const ast::Type * src, const ast::Type * dst,
-		const ast::TypeEnvironment & env );
-
-	// in PtrsCastable.cc
-	int ptrsCastable( const Type * src, const Type * dest, const TypeEnvironment & env, const SymTab::Indexer & indexer );
-	int ptrsCastable(
-		const ast::Type * src, const ast::Type * dst, const ast::SymbolTable & symtab,
-		const ast::TypeEnvironment & env );
-
-	// in CommonType.cc
-	Type * commonType( Type * type1, Type * type2, bool widenFirst, bool widenSecond, const SymTab::Indexer & indexer, TypeEnvironment & env, const OpenVarSet & openVars );
-	ast::ptr< ast::Type > commonType(
-		const ast::ptr< ast::Type > & type1, const ast::ptr< ast::Type > & type2,
-			ast::TypeEnvironment & env, ast::AssertionSet & need, ast::AssertionSet & have,
-			const ast::OpenVarSet & open, WidenMode widen, const ast::SymbolTable & symtab
-	);
-
-	// in PolyCost.cc
-	int polyCost( Type * type, const TypeEnvironment & env, const SymTab::Indexer & indexer );
-	int polyCost(
-		const ast::Type * type, const ast::SymbolTable & symtab, const ast::TypeEnvironment & env );
-
-	// in SpecCost.cc
-	int specCost( Type * type );
-	int specCost( const ast::Type * type );
 
 	// in Occurs.cc
@@ -171,5 +118,4 @@
 		}
 
-
 		return new ast::TupleType{ std::move(types) };
 	}
