(* Another example with threads. *) let rec printer () = Thread.delay 100000; putStr "x"; flush (); printer () let startStop () = let id = Thread.fork printer in let id = Thread.print id in λ () → Thread.kill id let timer () = let stop = startStop () in Thread.delay 2000000; stop () in timer ()