functor (Info : sig val name : string end-> sig val next : unit -> int end