(* An example with futures *) #load "libthread" let prompt () = Future.new getLine let rec printDots count delay = if count <= 0 then () else putStr "."; flush (); AThread.delay (1000 * delay); printDots (count - 1) delay let main message = putStrLn message; let future = prompt () in printDots 80 20; putStrLn ""; putStrLn (Future.sync future) in main "whadday say? "