let rec it_list func elem = function 
  | head::tail -> it_list func (func elem head) tail  
  | _ -> elem