Ответ 1
Симпатичное средство печати является частью библиотеки верхнего уровня. Источник находится в toplevel/genprintval.ml
. Это понятно, учитывая, что для этого нужна информация о типе: вы не можете просто выбросить на него какую-либо ценность, выбор симпатичного принтера основан на типе.
Если вы хотите использовать этот код в своей программе, вам нужно будет связать его с библиотекой toplevel (toplevellib.cma
) или скомпилировать в genprintval
(что означает, что нужно собрать достаточно бит проверки типа для анализа типа, он может стать довольно большим).
В отладчике есть аналогичное средство (но не разделяющее код) (debugger/printval.ml
и debugger/loadprinter.ml
).
Существуют сторонние библиотеки, с которыми вы можете напрямую ссылаться и которые предоставляют объекты для печати. Extlib Std.dump
обеспечивает очень грубое средство ( не основанный на типе). Deriving Джереми Яллоп и Джейк Донхем - другой подход. Этот элемент Caml Weekly News предлагает больше предложений.