functor (S : Lattice.S-> sig val init : unit -> unit end