let () = publish $str:name$ (
function
| [] ->
- Goaljobs.require ($lid:gname$ ())
+ Goaljobs.require $lid:gname$
| _ ->
failwith (Printf.sprintf "goal '%s' does not take any arguments"
$str:name$);
StSem (_loc, stmt, publish_name)
) stmts !autopublish
-(* Rewrite 'require (name args...)' as 'require (goal_name args)'.
+(* Rewrite 'require (name args...)' as 'require (fun () -> goal_name args)'.
* 'expr' is a function call.
*)
let generate_require _loc expr =
locfail _loc "require (...) expression must contain a call to a goal"
in
let expr = rewrite expr in
- <:expr< Goaljobs.require ($expr$) >>
+ <:expr< Goaljobs.require (fun () -> $expr$) >>
;;