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