# Functions

ExpectCodePoint expects exactly one rune in the Input.
ExpectCodePoints expects exactly the code points from the slice expectedCodePoints at the beginning of the Input in the given order.
ExpectNotCodePoint expects exactly one rune in the Input that does not appear in the forbiddenCodePoints.
ExpectSeveral accepts the first code point from the Input if isFirstChar returns true.
ExpectString expects the Input to begin with the code points from the expectedString in the given order.
FilenameToInput opens a file and converts it into Input.
FileToInput converts a RuneReader into a Input.
GetFirst extracts the first component of a pair or returns the argument if it is not a pair.
GetSecond extracts the second component of a pair or returns the argument if it is not a pair.
MaybeSpacesBefore allows and ignores space characters before applying the parser from the argument.
StringToInput converts a string to a RuneArrayInput so you can use parsers on it.

# Variables

ExpectIdentifier parses a [a-zA-Z_][a-zA-Z0-9_]* from the Input.
ExpectNumber parses a [0-9]+ from the Input and the result will be a string.
ExpectSpaces parses a [ \t\n\r]* from the Input.
Fail just is a failing parser.

# Structs

FileInput is an implementation of Input You can use FileToInput to create instances of this type directly from a path.
Nothing is the result of successfully parsing nothing at all.
Pair is a simple pair.
Result is the result of a parse along with the Input that remains to be parsed.
RuneArrayInput is an implementation of Input.

# Interfaces

Input is anything that can produce a sequence of code points.

# Type aliases

Parser parses its Input and produces some result.