Технически, вы можете думать о провайдерах типа F # как о «плагинах» для компилятора.Вместо генерации отображений компилятор спрашивает поставщика типов: «Какие типы вы знаете?»или "Ты знаешь этот тип?"(в зависимости от контекста).
Плагин (поставщик типов) отвечает и указывает, как выглядит тип (абстрактно, без фактического его создания).Затем компилятор работает с этой информацией, а затем просит поставщика типов предоставить код, который следует использовать при компиляции кода, использующего эти «поддельные» типы.Также возможно генерировать код (некоторые примеры делают это, потому что они просто используют инструменты, которые уже есть).
Так что да, вы можете реализовать свой собственный поставщик типов.Я сказал кое-что об этом в GOTO Копенгагенской лекции , которая была записана , и Дон Сайм сказал несколько вещей в его предыдущих выступлениях (я еще не видел его выступление BUILD).