Type package

When the function testtype is used to test the type of an expression, 
both domains and type expressions may be used for defining the types
to test for.  The library package Type offers the user some type 
expressions with which types can be comfortably tested. Additionally
functions are made available that return type expressions.

Two examples are the type expression Type::PosInt and the function 
Type::ListOf.  The call testtype(x, Type::PosInt) returns TRUE if x is 
a positive integer. The call testtype(x, Type::ListOf(DOM_INT)) returns 
TRUE if x is a list of integers. Here the function Type::ListOf returns 
a type expression that can be used with testtype.

The functions and type expressions available can be queried with info(Type).
They are

AnyType 	- Type expression for any type
ListOf		- type expressions for lists
ListOfIdents	- type expressions for lists
ListProduct	- type expressions for lists
ODE		- test for ordinary differential equations
PolyOf		- type expressions for polynomials
PosInt		- type expressions for numbers
NegInt		- type expressions for numbers
NonNegInt	- type expressions for numbers
Rational	- type expressions for numbers
RealNum		- type expressions for numbers
SequenceOf	- type expressions for expression sequences
Product		- type expressions for expression sequences
Series		- type expressions for series expansions
SetOf		- type expressions for sets
Union		- type expressions for alternatives
