1 2 3 4 5 6
type result = | Done | Value of Tuple.t * (int option -> result) | Error of string and t = int option -> result