 
 infix operator <?> { precedence 0 }
 
+/// Infix operator for `label`. It has the lowest precedence.
+///
+/// - parameters:
+///   - parser: The parser whose error message is to be replaced.
+///   - message: The new error message.
 public func <?><Stream, UserState, Result>(parser: GenericParser<Stream, UserState, Result>, message: String) -> GenericParser<Stream, UserState, Result> {
     
     return parser.labels(message)


infix operator <* { associativity left precedence 130 }

public func <*<Stream, UserState, Param1, Param2>(leftParser: GenericParser<Stream, UserState, Param1>, rightParser: GenericParser<Stream, UserState, Param2>) -> GenericParser<Stream, UserState, Param1> {
    
    return GenericParser.lift2({ $0.0 }, parser1: leftParser, parser2: rightParser)


infix operator >>- { associativity left precedence 100 }

/// Infix operator for `flatMap` named _bind_. It has the same precedence as the `nil` coalescing operator (`??`).
///
/// - parameters:
///   - parser: The parser whose result is passed to the `transform` function.
///   - transform: The function receiving the result of `parser`.
public func >>-<Stream, UserState, Result, T>(parser: GenericParser<Stream, UserState, Result>, transform: Result -> GenericParser<Stream, UserState, T>) -> GenericParser<Stream, UserState, T> {
    
    return parser.flatMap(transform)
