defining new types in maxima



Hello,
 Is there a standard way to define new types in maxima which could then 
be assigned to variables, have operations done on them, etc?
 
 One way to do this is to define certain named lists, operations on 
those lists and their elements, checks to see if items belong to the 
lists, etc.
I wondered if there is already an accepted way to do this, much like the 
'typedef' or 'struct' of C.

Thanks for any hints.

-sen