-- parses a word from the input 
word :: (ErrorComponent e, Monad m) => ParsecT e String m (SourcePos, String)
word = do
  st <- getParserState
  res <- some (letterChar <|> (oneOf ("'-"::[Char])))
  return (NE.head $ statePos st, res)
word :: (ErrorComponent e, Monad m) => ParsecT e String m (SourcePos, String)
word = do
  st <- getParserState
  res <- some (letterChar <|> (oneOf ("'-"::[Char])))
  return (NE.head $ statePos st, res)
word = do
  st <- getParserState
  res <- some (letterChar <|> (oneOf ("'-"::[Char])))
  return (NE.head $ statePos st, res)