# File lib/stream.rb, line 399
        def at_beginning?
          # same algorithm as at_end? the other way round. Could we do it
          # with metaprogramming?
          @currentStream.at_beginning? and
                begin
                  until streamOfStreams.at_beginning?
                        dir, @dirOfLastMove = @dirOfLastMove, :backward
                        s = streamOfStreams.basic_backward
                        next if dir == :forward
                        s.set_to_end
                        if s.at_beginning?
                          next
                        else
                          @currentStream = s
                          return false
                        end
                  end
                  reachedBoundary
                end
        end