def seek_top(&cond_proc)
      raise BadManipulationError, "Condition Proc isn't given." unless cond_proc
      abandoned = []
      until !rest? || cond_proc.call(non_proceed_get_next)
        abandoned << take_lookahead
      end
      return abandoned
    end
def seek_top(&cond_proc)
      raise BadManipulationError, "Condition Proc isn't given." unless cond_proc
      abandoned = []
      until !rest? || cond_proc.call(non_proceed_get_next)
        abandoned << take_lookahead
      end
      return abandoned
    end
Remove elements until finding element which fullfils proc-condition or reaching end of stream.
 return: array of removed elements

 Concrete example:
   If stream has [F1, F2, T3, F4, ...] and given cond_proc is Proc.new{|a| a == Tx},
   seek_top(&cond_proc) returns array of [F1, F2] and then stream has [T3, F4, ...].
   In the same way, (1) [T1, F2, ...] => return: [],       stream: [T1, F2, ...]
                    (2) [F1, F2]      => return: [F1, F2], stream: [] (end)
                    (3) [] (end)      => return: [],       stream: [] (end)