class type ftp_client_pi =object..end
method exec_e : ?prelim:(ftp_state -> reply -> unit) ->
       cmd -> (ftp_state * reply) Uq_engines.engine
	When the command is done, the engine transitions to
	`Done(st,r) where st is the state after the command, and r
	is the final reply of the server.
	Due to the FTP specification there may be several replies for
	a command: First, zero or more replies with cmd_state = `Preliminary,
	and then exactly one reply with a final state. The preliminary replies
	can be intercepted with the prelim callback.
method send_abort : unit -> unitABOR command, even when a data transfer is
 in progress.
 TODO - not yet implemented
method run : unit -> unitUnixqueue.runmethod ftp_state : ftp_statemethod state : unit Uq_engines.engine_stateUq_engines. Possible values are:`Working _: The control connection is still active. The int
   argument is currently meaningless.`Done(): The control connection has been terminated.`Error e: A violation of the FTP protocol happened, or another
   exception e occurred`Aborted: The abort method was calledmethod abort : unit -> unit`Aborted.method event_system : Unixqueue.event_systemmethod request_notification : (unit -> bool) -> unitUq_engines.enginemethod is_empty : boolmethod need_ip6 : bool`EPSV or `EPRT are required instead of
	`PASV and `PORT, respectively. This is first set after
	connecting to a server (i.e. when the IP address family is known).
	Before, it is always false.
      The following methods are first set when the `FEAT command is run.
      Use feat_method to do so. Until then, always false is returned.
method supports_tvfs : boolmethod supports_mdtm : bool`MDTM command is supported. Note that `MDTM is sometimes
	even supported even if the server does not provide the `FEAT command
	to test for this feature.method supports_size : bool`SIZE command is supported. Note that `SIZE is sometimes
	even supported even if the server does not provide the `FEAT command
	to test for this feature.method supports_mlst : bool`MLST and `MLSD commands are supportedmethod mlst_facts : string list`MLST and `MLSDmethod mlst_enabled_facts : string list`MLST and `MLSDmethod supports_utf8 : bool