F # позволяет использовать проверенную арифметику, открывая модуль Checked, который переопределяет стандартные операторы для проверки операторов, например:
open Checked
let x = 1 + System.Int32.MaxValue // overflow
приведет к исключению арифметического переполнения.
Но что, если я хочу использовать проверенную арифметику в небольшом объеме, например, С# с ключевым словом Checked:
int x = 1 + int.MaxValue; // ok
int y = checked { 1 + int.MaxValue }; // overflow
Как я могу контролировать область переопределения операторов, открыв модуль Checked или уменьшив его насколько возможно?