Source file appendable_list.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
type 'a t = 'a list -> 'a list
let empty k = k
let singleton x k = x :: k
let to_list l = l []
let ( @ ) a b k = a (b k)
let rec concat l k =
match l with
| [] -> k
| t :: l -> t (concat l k)