equal
  deleted
  inserted
  replaced
  
    
    
    63   | 
    63   | 
    64 // convenience  | 
    64 // convenience  | 
    65 implicit def string2parser(s: String) = StringParser(s)  | 
    65 implicit def string2parser(s: String) = StringParser(s)  | 
    66 implicit def char2parser(c: Char) = CharParser(c)  | 
    66 implicit def char2parser(c: Char) = CharParser(c)  | 
    67   | 
    67   | 
    68 implicit def ParserOps[I, T](p: Parser[I, T])(implicit ev: I => Seq[_]) = new { | 
    68 implicit def ParserOps[I : IsSeq, T](p: Parser[I, T]) = new { | 
    69   def || (q : => Parser[I, T]) = new AltParser[I, T](p, q)  | 
    69   def || (q : => Parser[I, T]) = new AltParser[I, T](p, q)  | 
    70   def ==>[S] (f: => T => S) = new FunParser[I, T, S](p, f)  | 
    70   def ==>[S] (f: => T => S) = new FunParser[I, T, S](p, f)  | 
    71   def ~[S] (q : => Parser[I, S]) = new SeqParser[I, T, S](p, q)  | 
    71   def ~[S] (q : => Parser[I, S]) = new SeqParser[I, T, S](p, q)  | 
    72 }  | 
    72 }  | 
    73   | 
    73   |