diff --git a/src/Parser/JSON.md b/src/Parser/JSON.md
index 87af1dc..b990e54 100644
--- a/src/Parser/JSON.md
+++ b/src/Parser/JSON.md
@@ -110,7 +110,7 @@ whitespace : Parser Char
 whitespace = do
   pnote "Whitespace character"
   result <- 
-    parseChar (\x => any (== x) $ the (List _) [' ', '\n', '\r', '\t']) id
+    parseChar (\x => any (== x) $ the (List _) [' ', '\n', '\r', '\t'])
   case result of
     GotChar char => pure char
     GotError err => throwParseError "Expected whitespace, got: \{show err}"
@@ -221,9 +221,12 @@ string = do
     -- TODO: Handle control characters properly
     stringCharacter : Parser Char
     stringCharacter = do
-      e1 <- parseError "Expected non-quote, got quote"
-      e2 <- parseError "End of input"
-      parseCharE (not . (== '"')) (\_ => e1) e2
+      result <- parseChar (not . (== '"'))
+      case result of
+        GotChar char => pure char
+        GotError err =>
+          throwParseError "Expected string character, got \{show err}"
+        EndOfInput => throwParseError "Unexpected end of input"
 ```
 
 ```idris