let finite_size {ints = l; is_int = is_int} = if (not is_int) then None else try let n = List.fold_left (fun n (b1,b2) -> match b1, b2 with | Minfty, _ | _, Pinfty -> raise Exit | Large (v1, _) , Large (v2, _) -> n +/ (v2 -/ v1 +/ (Int 1)) | _, _ -> assert false ) (Int 0) l in Some n with Exit -> None