Index: src/SynTree/BasicType.cc
===================================================================
--- src/SynTree/BasicType.cc	(revision 3e5439987bdaca8e3f69edabd5a99bb0e41316b1)
+++ src/SynTree/BasicType.cc	(revision f238fcc2eafd0e0a792e3db3f23ab47e63d45c2b)
@@ -29,4 +29,21 @@
 }
 
+bool BasicType::isWholeNumber() const {
+	return kind == Bool || 
+		kind ==Char ||
+		kind == SignedChar ||
+		kind == UnsignedChar ||
+		kind == ShortSignedInt ||
+		kind == ShortUnsignedInt ||
+		kind == SignedInt ||
+		kind == UnsignedInt ||
+		kind == LongSignedInt ||
+		kind == LongUnsignedInt ||
+		kind == LongLongSignedInt ||
+		kind ==LongLongUnsignedInt ||
+		kind == SignedInt128 ||
+		kind == UnsignedInt128;
+}
+
 bool BasicType::isInteger() const {
 	return kind <= UnsignedInt128;
Index: src/SynTree/Type.h
===================================================================
--- src/SynTree/Type.h	(revision 3e5439987bdaca8e3f69edabd5a99bb0e41316b1)
+++ src/SynTree/Type.h	(revision f238fcc2eafd0e0a792e3db3f23ab47e63d45c2b)
@@ -268,5 +268,5 @@
 	virtual Type *acceptMutator( Mutator & m ) override { return m.mutate( this ); }
 	virtual void print( std::ostream & os, Indenter indent = {} ) const override;
-
+	bool isWholeNumber() const;
 	bool isInteger() const;
 };
