sig val share : ('a -> 'a -> float) -> ('a -> int -> 'a -> int -> 'a) -> Ga_types.gvars -> 'a Ga_types.population -> Ga_types.sharing end