ring "//") *> manyTill anySingle (try eol)

endLine ∷ Parser m ⇒ m String
endLine = manyTill anySingle (try eol) <* emptyOrCommentLines

emptyLine ∷ Parse
klcValue ∷ Parser m ⇒ m String
klcValue = try (char '"' *> manyTill anySingle (char '"')) <|> try (some (noneOf [' ','\t','\r','\n'])) <?> "klc value"
klcValue = try (char '"' *> manyTill anySingle (char '"')) <|> try (some (noneOf [' ','\t','\r','\n'])) <?> "klc value"