Type-checking Operators allow a value's type to be checked. As well as actual types, there are also "pseudo-types" that can be checked for.
| Symbol | Type | Name | Description | Example | 
|---|---|---|---|---|
| typeof | Prefix | TypeOf | Returns the actual type of the term's value |   typeof a   | 
	
| is | Infix | IsType | Checks if the value of the left term is of the actual type or pseudo-type specified by the type descriptor in the right term |   a is int   | 
	
| is not | Infix | IsNotType | Checks if the value of the left term is not of the actual type or pseudo-type specified by the type descriptor in the right term |   a is not int   | 
	
| is a | Infix | IsType |  Optional form of is  |   a is a string   | 
	
| is not a | Infix | IsNotType |  Optional form of is not  |   a is not a string   | 
	
| is an | Infix | IsType |  Optional form of is  |   a is an integer   | 
	
| is not an | Infix | IsNotType |  Optional form of is not  |  a is not an integer  | 
	
 is not is a special form of is that allows the inverse to be checked in a convenient manner without using parentheses.
For example:
{ a is not string } { !(a is string) }
Both expressions in the example above are equivalent.
Optionally, the words a and an can be used with is and is not, purely to make the expression more readable.
For example:
{ a is not string } { a is not a string }
Both expressions in the example above are equivalent.
 There are two kinds of type descriptor - those that describe actual types, which are real data-types; and those that describe "pseudo-types", which are not data types at all, but additional types that are useful to use with the is Operator. 
| Actual types | |
|---|---|
 array  |  Comparison is true if the value is an Array  | 
	
 boolean or bool  |  Comparison is true if the value is a Boolean  | 
	
 float  |  Comparison is true if the value is a floating-point Number  | 
	
 integer or int  |  Comparison is true if the value is an integer Number  | 
	
 number  |  Comparison is true if the value is a Number, whether integer or floating-point  | 
	
 numeric  |  Comparison is true if the value is a Number, or a String containing a number  | 
	
 string  |  Comparison is true if the value is a String  | 
	
| Pseudo-types | |
 function  |  Comparison is true if the value is the name of a function that exists  | 
	
 macro  |  Comparison is true if the value is the name of a macro that exists  | 
	
 section  |  Comparison is true if the value is the name of a section that exists  | 
	
 validfile or validinclude or readablefile or readableinclude  |  Comparison is true if the value is the name of a file that is allowed to be included by the Include command, exists, and is readable  | 
	
 existentfile or existentinclude  |  Comparison is true if the value is the name of a file that is allowed to be included by the Include command, and exists, without checking readability  | 
	
 allowedfile or allowedinclude  |  Comparison is true if the value is the name of a file that is allowed to be included by the Include command, without checking existence or readability  | 
	
Type descriptors are case-insensitive.