eadHexp :: (Num a, Integral a) => ST a
readHexp = ST(\(Stat(c,s,v)) ->
   let us= unpack s
       l=  readHex  us
   in if Prelude.null l then Left . Error $  "readHexp: not readable: " ++ us
         else let ((x,str2):_)= l
              in Right(Stat(c, pack $ Prelude.dropWhile isSpace str2,v),x) )
   <?> "readHexp "

readHexp :: (Num a, Integral a) => ST a
readHexp = ST(\(Stat(c,s,v)) ->
   let us= unpack s
       l=  readHex  us
   in if Prelude.null l then Left . Error $  "readHexp: not readable: " ++ us
         else let ((x,str2):_)= l
              in Right(Stat(c, pack $ Prelude.dropWhile isSpace str2,v),x) )
   <?> "readHexp "
readHexp = ST(\(Stat(c,s,v)) ->
   let us= unpack s
       l=  readHex  us
   in if Prelude.null l then Left . Error $  "readHexp: not readable: " ++ us
         else let ((x,str2):_)= l
              in Right(Stat(c, pack $ Prelude.dropWhile isSpace str2,v),x) )
   <?> "readHexp "