let rec stream_map f (__strm : _ Stream.t) =
match Stream.peek __strm with
| Some x ->
(Stream.junk __strm;
let strm = __strm
in
Stream.lcons (fun _ -> f x)
(Stream.slazy (fun _ -> stream_map f strm)))
| _ -> Stream.sempty