1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
include Stdlib.Seq
let map t ~f = map f t
let filter t ~f = filter f t
let filter_map t ~f = filter_map f t
let fold_left t ~init ~f = fold_left f init t
let iter t ~f = iter f t
let return t = return t
let cons x next () = Cons (x, next)
let rec append seq1 seq2 () =
match seq1 () with
| Nil -> seq2 ()
| Cons (x, next) -> Cons (x, append next seq2)