 P.TokenParsing p) ⇒ p [(String, String, String, Maybe String)]
readAuthInfo = do
  lines' ← P.sepEndBy readAuthInfoLine (P.newline)
  P.whiteSpace
  P.eof
  pure lines'

readAuthInfoFile ∷ String → 
readAuthInfo ∷ (Monad p, P.TokenParsing p) ⇒ p [(String, String, String, Maybe String)]
readAuthInfo = do
  lines' ← P.sepEndBy readAuthInfoLine (P.newline)
  P.whiteSpace
  P.eof
  pure lines'
readAuthInfo = do
  lines' ← P.sepEndBy readAuthInfoLine (P.newline)
  P.whiteSpace
  P.eof
  pure lines'