stringLiteral :: CharParser st RDFLiteral
stringLiteral = do
  (s, b) <- try longLiteral <|> shortLiteral
  do
      string cTypeS
      d <- datatypeUri
      return $ RDFLiteral b s $ Typed d
    <|> do
        string "@"
        t <- skips $ optionMaybe languageTag
        return $ RDFLiteral b s $ Untyped t
    <|> skips (return $ RDFLiteral b s $ Typed $ mkQName "string")
stringLiteral :: CharParser st RDFLiteral
stringLiteral = do
  (s, b) <- try longLiteral <|> shortLiteral
  do
      string cTypeS
      d <- datatypeUri
      return $ RDFLiteral b s $ Typed d
    <|> do
        string "@"
        t <- skips $ optionMaybe languageTag
        return $ RDFLiteral b s $ Untyped t
    <|> skips (return $ RDFLiteral b s $ Typed $ mkQName "string")
stringLiteral = do
  (s, b) <- try longLiteral <|> shortLiteral
  do
      string cTypeS
      d <- datatypeUri
      return $ RDFLiteral b s $ Typed d
    <|> do
        string "@"
        t <- skips $ optionMaybe languageTag
        return $ RDFLiteral b s $ Untyped t
    <|> skips (return $ RDFLiteral b s $ Typed $ mkQName "string")