functor
  (A : sig
         val env : Typed_ast.env
         val target : Target.target
         val dir : string
         val id_format_args :
           (bool -> Output.id_annot -> Ulib.Text.t -> Output.t) * Ulib.Text.t
       end->
  sig
    val open_to_open_target :
      Path.t Types.id list ->
      (Typed_ast.lskips * string) list * Typed_ast.lskips
    val function_application_to_output :
      Ast.l ->
      (Typed_ast.exp -> Output.t) ->
      bool ->
      Typed_ast.exp ->
      Types.const_descr_ref Types.id ->
      Typed_ast.exp list -> bool -> Output.t list
    val pattern_application_to_output :
      Ast.l ->
      (Typed_ast.pat -> Output.t) ->
      Types.const_descr_ref Types.id ->
      Typed_ast.pat list -> bool -> Output.t list
    val const_id_to_ident : Types.const_descr_ref Types.id -> bool -> Ident.t
    val const_ref_to_name :
      Name.lskips_t -> bool -> Types.const_descr_ref -> Name.lskips_t
    val type_path_to_name : Name.lskips_t -> Path.t -> Name.lskips_t
    val type_id_to_ident : Path.t Types.id -> Ident.t
    val type_id_to_output : Path.t Types.id -> Output.t
    val type_id_to_ident_no_modify : Path.t Types.id -> Ident.t
    val type_app_to_output :
      (Types.src_t -> Output.t) ->
      Path.t Types.id -> Types.src_t list -> Types.src_t list * Output.t
    val module_id_to_ident : Path.t Types.id -> Ident.t
  end