``` elixir @spec peek(Enumerable.t) :: {any, Enumerable.t} def peek(stream) do {value, cont} = Enumerable.reduce(stream, fn (acc, el) -> # take one # return continuation function ) {value, Stream.concat([value], cont)} end ```