domainList :: Parser Constant
domainList = do
    dms <- commaSep1 (lexeme domain)
    n <- index dms
    return (DT_Dom, CV_Index n)
  where
    index dms = do
        st <- getState
        let n = domcnt st
        setState st {
            domlol = dms : domlol st
          , domcnt = n + 1
          }
        return n

----------------------------------------------------------------
domainList :: Parser Constant
domainList = do
    dms <- commaSep1 (lexeme domain)
    n <- index dms
    return (DT_Dom, CV_Index n)
  where
    index dms = do
        st <- getState
        let n = domcnt st
        setState st {
            domlol = dms : domlol st
          , domcnt = n + 1
          }
        return n

----------------------------------------------------------------
domainList = do
    dms <- commaSep1 (lexeme domain)
    n <- index dms
    return (DT_Dom, CV_Index n)
  where
    index dms = do
        st <- getState
        let n = domcnt st
        setState st {
            domlol = dms : domlol st
          , domcnt = n + 1
          }
        return n

----------------------------------------------------------------