1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
open! Import
include List0
let is_empty = function
| [] -> true
| _ -> false
;;
let partition_map t ~f =
let rec loop t fst snd =
match t with
| [] -> rev fst, rev snd
| x :: t ->
(match f x with
| `Fst y -> loop t (y :: fst) snd
| `Snd y -> loop t fst (y :: snd))
in
loop t [] []
;;