let run (e : 'a computation) : 'a = let rec run' n = match e n with None -> run' (S n) | Some v -> v in run' O