         return anyCharacter(except: exception).manyConcatenated()
     }
 
-    /// Parse a string until it sees a the exception character, 
+    /// Parse a string until it sees a the exception character,
     /// without consuming the character
     static func string(until character: Character) -> Parser<String> {
         return anyCharacter(except: character).manyConcatenated()

    }

    static func anyCharacter(in characterString: String) -> Parser<String> {
        return anyCharacter(in: characterString[characterString.startIndex ..< characterString.endIndex])
    }

    static func anyCharacter(except exception: Character) -> Parser<String> {


    static let whitespace      = anyCharacter(in: [" ", "\t"])
    static let whitespaces     = whitespace+

    static let newLine         = anyCharacter(in: ["\n", "\r"])
    static let newLines        = newLine+

    static let upperLetter     = anyCharacter(in: "A"..."Z")
    static let lowerLetter     = anyCharacter(in: "a"..."z")
    static let letter          = upperLetter | lowerLetter
