How do I obtain an object's properties?



For example:

(%i1) modulus:97;
(\%o1)                     97
(%i2) a:rat(2);
(\%o2)                       2
(%i3) b:2;
(\%o3)                       2
(%i4) a^10;
(\%o4)                    -43
(%i5) b^10;
(\%o5)                 1024

Here a and b are clearly different types of objects, even though they
look the same.  How can Maxima tell me their properties - and is there
a way to have those properties automatically shown?

Thanks,
Alasdair