class type gss_api =[[credential, name
, context]]Netsys_gssapi.poly_gss_api
The methods have generally a type of the form
 
       m : 't . arg1 -> ... -> argN -> out:( ret1 -> ... -> retM -> 't ) -> 't 
    where args are input arguments (with the exception of context 
    which is in/out), and where outputs are passed back by calling the out
    functions with the outputs. The return value of out is the return
    value of the method call.
For example, if only output_token of the accept_sec_context method
    is needed, one could call this method as in
      let output_token =
	gss_api # accept_sec_context 
	   ... 
	   ~out:(fun ~src_name ~mech_type ~output_token ~ret_flags
		     ~time_rec ~delegated_cred_handle ~minor_status
		     ~major_status ->
		  output_token
		)
    Output values may not be defined when major_status indicates
    an error. (But see the RFC for details; especially init_sec_contect
    and accept_sec_context may emit tokens even when major_status
    indicates an error.)
The names of the parameters are taken from RFC 2744, only
    suffixes like _handle have been removed. When the prefixes
    input_ and output_ are meaningless, they are also removed.
    All prefixes like "GSS" are removed anyway.