 try (char '"' *> manyTill anySingle (char '"')) <|> try (some (noneOf [' ','\t','\r','\n'])) <?> "klc value"

isHex ∷ Parser m ⇒
nameValue ∷ (Parser m, MonadFail m) ⇒ m (String, String)
nameValue = do
    [name, value] ← readLine
    pure (name, value)
nameValue = do
    [name, value] ← readLine
    pure (name, value)