Я искал net и обнаружил пакет OCaml с именем «inspect», который, похоже, выполняет то, что вы хотите. Вот что он показывает для значений true
и [1; 2; 3]
:
# Sexpr.dump true;;
(DUMP 1)- : unit = ()
# Sexpr.dump [1;2;3];;
(DUMP
(BLK/0
:TAG 0
:VALUES
1
(BLK/1 :TAG 0 :VALUES 2 (BLK/2 :TAG 0 :VALUES 3 0))))- : unit = ()
Он доступен в виде пакета opam с именем «inspect». Страница Github для хранилища пакетов: https://github.com/krohrer/caml-inspect.
Вывод не будет иметь смысла без некоторого знакомства с компоновкой значений OCaml. Я думаю, это неизбежно. Информация на странице Github и в руководстве по OCaml.