summaryrefslogtreecommitdiff
path: root/src/primes.ml
diff options
context:
space:
mode:
Diffstat (limited to 'src/primes.ml')
-rw-r--r--src/primes.ml15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/primes.ml b/src/primes.ml
index b9a57ed..21d979a 100644
--- a/src/primes.ml
+++ b/src/primes.ml
@@ -26,20 +26,25 @@ module Primes (K : Kahn.S) = struct
(get qi) >>= (fun v ->
if v <> -1 then
begin
- Format.printf "%d@." v;
+ Format.eprintf "%d@." v;
(delay new_channel ()) >>=
(fun (qi2, qo2) -> doco [ filter v qi qo2 ; primes qi2 ])
end
else return ())
- let main : unit process =
+ let main : int process =
(delay new_channel ()) >>=
- (fun (q_in, q_out) -> doco [ integers 2000 q_out ; primes q_in ])
+ (fun (q_in, q_out) -> doco [ integers 500 q_out ; primes q_in ])
+ >>= (fun () -> return 42)
end
-module Eng = Kahn_pipe.Pipe
+module Eng = Kahn_stdio.ProtoKahn
module P = Primes(Eng)
-let () = P.K.run P.main
+let () =
+ let r = P.K.run P.main in
+ assert (r = 42);
+ Format.eprintf "Primes finished (%d \\o/).@." r
+