> > signature ITERATE1 = > > sig > > type 'a t > > val iterate: 'a t -> 'a -> unit > > end > > It doesn't look like I can do much of anything with that. Duh! :-) That should be signature ITERATE1 = sig type 'a t val iterate: 'a t -> unit -> 'a end