Relatedly, one should be careful using the [ignore] function. Always give its argument a type signature. E.g. if you do this: ignore (my_function foo); Then this will start silently not calling [my_function] whenever someone adds a second argument. You should instead use: ignore (my_function foo : Foo.t); On 21 May 2014 13:25, Ollie Frolovs wrote: > oh dear! i think i know what happened. self_init has never been called in > the first place! it requires a unit argument which i did not give it, so > the “alias” to Random.self_init was assigned to nothing, so to speak, > instead of calling the function. > > Many thanks, Dmitry! I’ve amended that line to let () = Random.self_init > () and it works. > > On 21 May 2014, at 13:18, Dmitry Grebeniuk wrote: > > > Hello. > > > >> let _ = Random.self_init > > > > That's why I almost never use "let _ = ...", or > > constrain "_" to some type when I use it. > > Try to replace it with "let () = ..." and follow compiler > > errors. Or with "let (_ : unit) = ...". > > > -- > Caml-list mailing list. Subscription management and archives: > https://sympa.inria.fr/sympa/arc/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs >