 
   public mutating func matchBytes(bytes: [UInt8], consume: Bool = false)
       -> Int {
-    var r = -1
     let i = currentIndex
     let savei = i
     let len = bytes.count

      i += 1
    }
    if i > savei {
      r = i - savei
      if consume {
        currentIndex = i
      }
    }
    return r
  }

  public mutating func skipToEnd() -> Bool {


  public mutating func matchContext(consume: Bool = false,
      fn: (c: UInt8) -> Bool) -> Int {
    var i = currentIndex
    let len = lineEndIndex
    while i < len {
      if fn(c: _bytes[i]) {
        if consume {
          currentIndex = i
          startIndex = i
        }
        return i
      }
      i += 1
    }
    return -1
  }

  public mutating func maybeEat(fn: (inout ctx: ByteStream) -> Bool) -> Bool {
