let repeatUntilSome f = Seq.initInfinite (fun _ -> f()) |> Seq.find Option.isSome |> Option.get let repeatUntilTrue f = Seq.initInfinite (fun _ -> f()) |> Seq.find id |> ignore