Описание тега metaocaml
"MetaOCaml является многоступенчатым расширением языка программирования OCaml и предоставляет три базовые конструкции, называемые Brackets, Escape и Run, для построения, комбинирования и выполнения вычислений будущего этапа соответственно.... MetaOCaml - это скомпилированный диалект MetaML.." - с домашней страницы MetaOCaml
MetaOcaml - это язык, основанный на OCaml, который обеспечивает дополнительную поддержку метапрограммирования. Он работает с концепцией "поэтапных вычислений", где каждый этап более абстрактен, чем этап ниже него. Например, большинство языков программирования создают только одноэтапные программы, но двухступенчатая программа - это программа, которая принимает некоторые входные данные и использует их для создания программы с одним состоянием. В некоторой степени связано с макросами, но с системой типов. MetaOCaml включает систему типов, учитывающую этапы.
Домашняя страница MetaOCaml: http://www.metaocaml.org/