Thanks, I get it now ! Cheers Gabriel 2012/3/13 Samuel Hornus > > On Mar13, 2012, at 11:49 , Gabriel Cardoso wrote: > > > Dear list, > > > > I have empty arguments when using Arg.Tuple with references. This > minimalist example illustrates my problem : > > > > let f a b = > > print_endline a; > > print_endline b > > > > let s = ref "" > > > > let speclist = [( > > "-a", > > Arg.Tuple [ > > Arg.Set_string s; > > Arg.String (f !s) (* !s is empty !!! *) > > Here, the value of !s is empty when the (f !s) is evaluated… > you shoud pass the whole reference as argument : > Arg.String(f s) > and > let f a b = print_endline !a; print_endline b > > > (* Arg.String (fun ss -> f !s ss) (\* Works just fine ... why ? *\) > *) > > why ? because the !s here is evaluated only later, whenthe anonymous > function is applied. > -- > Sam