Глава 12 Расширения языка
15 Генеративные функторы
(Введены в OCaml 4.02)
|
Генеративный функтор принимает аргумент единицы (). Для его использования необходимо обязательно применить его к этому аргументу единицы, гарантируя, что все компоненты типа в результате действия функтора ведут себя генеративно, т.е. они отличаются от типов, полученных при других применениях того же функтора. Это эквивалентно принятию аргумента с сигнатурой sig end и всегда применению к struct end, но не к какому-либо определенному модулю (в последнем случае повторное применение к одному и тому же модулю вернет идентичные типы).
В качестве побочного эффекта этой генеративности разрешается распаковывать модули первого класса в теле генеративных функторов.
© 1995-2024 INRIA.
https://ocaml.org/manual/5.2/generativefunctors.html