12345678910111213141516171819202122232425262728293031323334353637383940414243444546open!CoreopenAsynctype'at={function_:string;tag_arguments:Sexp.tLazy.toption;tag_result:('a->Sexp.t)option;tag_error:(Krb_error.t->Sexp.tDeferred.t)option}letcreate?tag_arguments?tag_result?tag_errorfunction_={function_;tag_arguments;tag_result;tag_error};;lettags'tcode=let%maperror_tags=matcht.tag_errorwith|None->returnNone|Someget_tags->get_tagscode>>|Option.someinmatchConfig.verbose_errorswith|false->error_tags|true->letargument_tags=Option.mapt.tag_arguments~f:Lazy.forcein(matchOption.to_listargument_tags@Option.to_listerror_tagswith|[]->None|tags->Some[%message(code:Krb_error.t)~_:(tags:Sexp.tlist)]);;letsandbox_tag=Option.some_if(Ppx_inline_test_lib.am_running&¬Config.am_sandboxed)(Sexp.Atom"No KDC access - consider setting (uses_kerberos (Yes_with_principals \
(PRINCIPALS...))) in the appropriate portion of the jbuild to opt-in to \
sandboxing");;lettags=matchsandbox_tagwith|None->tags'|Somesandbox_tag->funtcode->let%maptags=tags'tcode>>|Option.to_listinSome(Sexp.List(sandbox_tag::tags));;