if v then raise (Goal_result Goal_OK)
let target_all vs = target (List.fold_left (&&) true vs)
let target_exists vs = target (List.fold_left (||) false vs)
-let require () = ()
+let require f = f ()
type period_t = Seconds | Days | Months | Years
let seconds = (1, Seconds)