If you are familiar with types in other programming languages you should note that Maple has multi-typed objects. This means things in Maple can have more than 1 type.
For example the trig function:
returns true on the following type checks (and possibly others):
If you call
whatype(sin(x)); the output will be function. This is because the top-level type of sin(x) is function.
A top-level type is a type that doesn't contain other types. For example the type algebraic (see help page here), includes anything that has any of these types listed on the help page, so it won't be something's top-level type.
Often the types used for type checking in Maple are Surface (top level) Types and Nested Types. For more information on the hierarchy of these see this help page.
For information on the different kinds of types in Maple please see Definition of a Type in Maple.
For more information please see the help pages: