Question: need help with my code please

i have a procedure like this

> palindrome:=proc(n)

   option cache;

   uses ST = StringTools;

   if length(n) :: even or odd

   and modp(n,11) <> 0 then

   return false;

   else

   return ST :- IsPalindrome(convert(n,'string'));

   end if;

   end proc;

> palindrome("mom");

   error, (in palindrome) invalid argument for modp or mods

is somthing wrong with the code? and the same error message for long string 

Please Wait...