 
 infix operator <^> { associativity left precedence 130 }
 
+/// Infix operator for `map`. It has the same precedence as the equality operator (`==`).
+///
+/// - parameters:
+///   - transform: A mapping function.
+///   - parser: The parser whose result is mapped.
 public func <^><Stream, UserState, Result, T>(transform: Result -> T, parser: GenericParser<Stream, UserState, Result>) -> GenericParser<Stream, UserState, T> {
     
     return parser.map(transform)


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, Param2> {
    
    return GenericParser.lift2({ $1 }, parser1: leftParser, parser2: rightParser)


infix operator <* { associativity left precedence 130 }

/// Sequence parsing, discarding the value of the second parser. It has the same precedence as the equality operator (`==`).
///
/// - parameters:
///   - leftParser: The first parser executed.
///   - rightParser: The second parser executed.
/// - returns: A parser returning the result of the first parser.
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)
