Pretty printing of CUDF macro-components (documents, stanzas, ...)
For pretty printing of micro-components see Cudf_types_pp.
Note: you can write to string using these methods using the following pattern:
let o = IO.output_string () in ... Cudf_printer.pp_* o ...; IO.close_out o
Usually, you shouldn't need those and you should be well served by the above printers.
To bootstrap usage of the generic printers, you'll need to provide a pp_property argument --- that takes a property as a pair of name/value strings and print them on a generic output --- and then proceed composing generic printers together.