let lpodziel list = let rec lpodziel = function | LCons(v, f), i -> let (list1, list2) = lpodziel(f(), i+1) in if i mod 2 = 0 then LCons(v, fun() -> list1), list2 else list1, LCons(v, fun() -> list2) | LEmpty, _ -> LEmpty, LEmpty in lpodziel(list, 0);;