     return (Just s)
 
 -- | Obtain the token Maybe String for the specified token.
--- >>> tokenGetTextMaybe token
 -- | For identifier tokens, the token string is interesting.  For
 -- | other tokens such as operator tokens, the token string is
 -- | uninteresting, and may not be present, the token identifier enum 

#endc

-- | Obtain the token name ANTLR string for the specified token.
-- >>> tokenGetAntlrString token
-- | For identifier tokens, the token string is interesting.  For
-- | other tokens such as operator tokens, the token string is
-- | uninteresting, and may not be present, the token identifier enum 

#endc

-- | Lookahead in the input stream at the token at the specified
-- | positive offset, where:
-- > LT input 1 
-- | is the current token.  Or a negative offset may be specified, where: 
-- > LT input (-1) 
-- | is the previous token.
-- @
--   foreign export ccall isUnsignedInt :: Ptr InputStream -> IO Bool
--   isUnsignedInt input =
--     do token1 <- lT input 1 >>= tokenGetType
--        if token1 /= UNSIGNED
--          then return False
--          else 
--          do 
--            token2 <- lT input 2 >>= tokenGetType
--            return ((token2 /= CHAR) && (token2 /= SHORT) && (token2 /= LONG))
-- @
{#fun LT as lT
 { toInputStream `Ptr (InputStream)',
   `Int' } -> `Ptr (CommonToken)' fromCommonToken#}
