Можно ли сказать компилятору OCaml встроить функцию вместо того, чтобы надеяться, что процесс оптимизации сделает это сам?





Вы можете добавить атрибут, чтобы всегда встраивать функцию
let f x = x [@@inline always]
(* which is equivalent to *)
let f x = x [@@inline]
или заставить конкретный вызов быть встроенным с другим атрибутом
let a = (f[@inlined]) 1
Если вы хотите проверить встраивание решений, сделанных flambda, вы можете использовать флаг inlining-report.
Я также видел форму let[@inline] f x = x для встраивания функций (без 'd')
let[@inline] f x = x — это сокращение от let f x = x [@@inline].
Спасибо, благодаря вашему ответу я смог найти файл соответствующий раздел в руководстве.